AWSのストレージサービス

ブロックストレージ

・EBSやインスタンスストアのことです。
・EC2にアタッチして活用するします。
・ブロック形式でデータを保存します。
・高速で高帯域幅です。

オブジェクトストレージ

・S3やGlacierのことです。
・安価かつ耐久性のおるオンラインストレージです。
・オブジェクト形式でデータを保存します。

ファイルストレージ

・EFSのことです。
・複数のEC2インスタンスから同時にアタッチが可能な共有ストレージサービスです。
・ファイル形式でデータを保存します。

S3とは?

ユーザーがデータをデータを容量制限なく保存可能です。
マネージド型で提供されるオブジェクト型ストレージになります。
マネージド型→ユーザー側で冗長性を担保する必要はありません。

  • ・key: オブジェクトの名前。バケット内のオブジェクトは一意に識別する
  • ・value: データそのもの
  • ・バージョンID: バージョン管理に用いる
  • ・メタデータ: オブジェクトに付随する属性情報
  • ・サブリソース: バケット構成情報を保存及び管理するためのサポートを提供

ストレージタイプ

通常はスタンダードを使用します。
性能は、耐久性99.999999999%で、イレブンナインと言われ、可用性は99.99%です。

Glacierは最安だが性能が悪くなります。
→ 中長期データを保存する用のストレージサービスです。

S3 Intelligent-Tiering

低頻度のアクセスのオブジェクトを自動的に低頻度アクセス層に移動し、コストを削減します。
基本的には30日間アクセスなしなら低頻度アクセス層の移動します。

値段

保存データ容量、データ取得リクエスト、データ転送アウトに応じて課金になります。
値段はリージョンによって変わります。

整合性

高い可用性を実現するため、データ更新削除時には結果整合性モデルを採用しています。
同時書き込み時はタイムスタンプ処理を実施します。

アクセス管理

・IAMポリシー → 大枠。S3サービスへのアクセス権限
・バケットポリシー → バケット自体へのアクセス権限
・ACL → バケットと個々のオブジェクトへのアクセス権限をXMLで設定する
・署名付きURL → 一時的なアクセス許可

S3はインターネット上からアクセスすることが可能

パブリックアクセスの設定でオンにすることで、インターネット上からアクセスする事が可能になります。
他のストレージサービスはEC2インスタンスを通してアクセスします。

暗号化

・SSE-S3 → S3で自動に暗号化。AES256を使用してデータを暗号化。
・SSE-KMS → AWS KMSで設定した暗号化キーを利用する。独自のキーを使用できる。
・SSE-C → アプリケーション側で構築するなど複雑なことが出来る。
・クライアントサイド暗号化 → クライアント側の暗号化。S3に送信する前にデータを暗号化する。AWS KMSなどを利用する。

S3アクセスポイント

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

S3へのアクセスポイントを複数設定しAさん専用のアクセスポイント、Bさん専用のアクセスポイントなど設定できます。

S3アクセスアナライザー

アクセスポリシーに沿っているかを確認し、不正なアクセスが発生していないかを監視します。
セキュリティーやアクセス管理に近い機能です。

ライフサイクル管理

自動でデータを移管してくれるます。効率的なデータ保存が可能になります。
一定期間でGlacierへ、一定期間で削除など出来ます。

レプリケーション

リージョンを跨いでクロスリージョンレプリケーション出来ます。
最初からリージョンに複数AZに冗長化されているが、さらに別々のリージョンにバケットを作ってレプリケーション出来ます。

バージョンが変わったことをトリガーにしてレプリケーションするため、バージョン管理と一体にして考える必要があります。

バージョン管理

過去のバージョンをたどればデータをもとに戻せます。
データの容量を食ってしまうため、ライフサイクル管理で古いバージョンは削除するなどの対応が必要です。

イベントをトリガーにします。

S3データ解析

・S3 Select → S3の内部機能として有している検索機能。S3内で直セスクエリを実行し、取得できる。簡易に実行できる。

・Amazonn Athena → より複雑な分析ができる。データ分析に使う。

・Amazonn Macie → コンプライアンスチェック。

・Amazon Redshift Spectrum → Redshiftを使っている場合。

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

大容量オブジェクトをいくつかに分けてアップロードする事ができます。

バッチオペレーション

S3オブジェクトの大容量データに対して一括処理を実行することが出来ます。

・ジョブ → S3バッチオペレーションの機能の基本単位。ジョブを作成しバッチオペレーションを作る。

・マニュフェスト → Amazon S3が作用するオブジェクトキーをリストするAmazon S3オブジェクト。ジョブを実行するオブジェクトのこと。

S3の用途

コンテンツ配信・保管

CMSからの画像等のコンテンツデータの保管先にS3を利用し、CloudFrontを利用してキャッシュを効かせ、アクセスを早くします。

ログ・バッチの保管場所

ログファイルやバッチファイルの保管先として利用します。

バックアップ/ディザスタリカバリ

バックアップの保存先にする。クロスリージョンにデータを保存することで事業継続性計画の対策となります。

WEBの静的ホスティング

S3のみで静的なWEBサイトをホスティングして構築可能です。

データレイク

S3はデータレイクとしてデータ活用のは部として利用可能です
登録したオブジェクトが削除されると困る場合はオブジェクトロックします。

・リクエスタ支払い → 読み取り側で支払いを設定する(データを使用する側が料金を支払う)

AWS Storage Gateway

標準的なストレージプロトコルを利用して外部システム環境からAWSのストレージサービスとを接続するサービスです。
オンプレミス環境からS3にバックアップを置いていきます。

AWSの機能や性能をオンプレミスから使用できます。

・ファイルゲートウェイ →ファイルデータを格納する。オンプレミスのファイルデータをAWS Storage Gatewayを経由してAmazon S3上のオブジェクトとして格納する。ファイルとオブジェクトのマッピングは1対1

・ボリュームゲートウェイ → Amazon S3 または EBS snapshotsをバックエンドとしたブロックストレージ。
オンプレミス環境のディスクデータをAWS Storage Gateway経由でSnapshotとしてAmazon S3上に取得し、AWS環境でDisaster Recoveryを実現する。

・テープゲートウェイ → Amazon S3 と Tlacierにデータを保管する仮想テープストレージトVTL管理。Storage Gatewayを仮想テープライブラリとして利用。

S3 Transfer Acceleration

クライアントとS3バケットの間で長距離に渡るファイル転送を高速簡単安全に実行します。

世界中から中央のバケットに対してアップロードが行われます。
大陸間で定期的にギガバイトから寺バイト単位のデータを転送します。

S3 Glacier

S3と同じ耐久性で料金は安いがデータ取得などの迅速性はありません。

バックアップなどの中長期保存用のS3よりも安価です。

・データは「オブジェクト」ではなく「アーカイブ」
・最大サイズは40TB
・アーカイブはボールトに格納していく
・1アカウントで1000個までボールトを使用できる
・AES256を暗号化に使用している
・最低90日間はデータを保持する必要がある。

データ取り出しタイプ

・迅速 → 1から5分
・プロビジョニングキャパシティ → 迅速と一緒に使う。迅速取り出しの取得容量を必要なときに利用できることを保証する仕組みのこと
・標準 → 3から5時間
・大容量 → たくさんデータを取り出すときに料金が安くなる。標準よりも時間はかかる。

アクセス管理

・IAMポリシー → リソースへのアクセス管理。Glacierへのアクセスを許可するか
・ボールドポリシー → ボールドで直接アクセスポリシーを定義して組織内のユーザーや社外ユーザーに対してアクセス権を付与する
・データ取り出しポリシー → データ取得に関する制限。無料範囲を超える場合は何TBまでなど設定してコストの上限を設定。
・ボールドロックポリシー → データの変更を禁止する
署名 → 認証保護