Programming Self-Study Notebook

勉強したことを忘れないように! 思い出せるように!!

AWS S3について調べてみた

f:id:overworker:20210304234231p:plain:h200f:id:overworker:20210314003943p:plain:h200

参考資料

全般

保存データの制限

  • 格納可能なデータの総量とオブジェクトの数には制限はない
  • 個別の Amazon S3 オブジェクトのサイズは、最低 0 バイトから最大5テラバイトまで
  • 1 つの PUT にアップロード可能なオブジェクトの最大サイズは 5ギガバイト

ストレージクラスの種類

  • S3 標準
    :高頻度アクセスの汎用ストレージ用
  • S3 Intelligent-Tiering
    :未知のアクセスパターンまたはアクセスパターンが変化するデータ用
  • S3 標準 – 低頻度アクセス
    :S3 標準 – IA
  • S3 1 ゾーン – 低頻度アクセス
    :S3 1 ゾーン – IA、長期間使用するが低頻度アクセスのデータ用:
  • Amazon S3 Glacier
    :S3 Glacier
  • Amazon S3 Glacier Deep Archive
    :S3 Glacier Deep Archive、長期アーカイブおよびデジタル保存用:
  • S3 Outposts
    :データレジデンシーの要件を満たすオンプレミスのオブジェクト保存用)

データ編成

  • キーベースのオブジェクトストア
  • データを格納する場合、後にデータを取得するために使用することのできる独特なオブジェクトキーを割り当てる
  • キーは任意の文字列にすることができる
  • 階層的属性を模して構築することができる
  • S3 オブジェクトタグを用いて、お使いのすべての S3 バケットプレフィックスにわたってデータを編成できる

データのやり取り

信頼性(アベイラビリティー)

トラフィックが急激に増加した場合のパフォーマンス

  • 従量制の料金設定と無制限の容量により、負荷上昇によってコストが変わることはなく、サービスが干渉を受けることもない。
  • Amazon S3 の莫大な規模により、負荷を均等に配分することができる。
  • 個別のアプリケーションが、トラフィックのスパイクによる影響を受けることはない。

トラフィックが急激に増加した場合のパフォーマンス

  • 従量制の料金設定と無制限の容量により、負荷上昇によってコストが変わることはなく、サービスが干渉を受けることもない。
  • Amazon S3 の莫大な規模により、負荷を均等に配分することができます。これによって個別のアプリケーションが、トラフィックのスパイクによる影響を受けることはありません。

データのライフサイクル

  • ライフサイクル全体でデータを管理する機能が搭載されている
  • S3 ライフサイクルポリシーを設定すると、データは別のストレージクラスに自動的に移行されます
    • アプリケーションに変更を加える必要はない

1つのバケットに異なるストレージクラスのオブジェクト

  • 1 つのバケットに S3 標準、S3 Intelligent-Tiering、S3 標準 – IA、S3 1 ゾーン – IA で保存された各オブジェクトを混在させることができる

データを格納する AWS リージョンの決定について

  • 特定のアプリケーションに合わせて考慮すべきいくつかの要素があります。以下の条件を満たすリージョンにデータを格納することもできます。
    • データアクセス遅延を減らすため、お客様のカスタマー、データセンター、または他の AWS リソースに近い。
    • 地理的冗長性および災害対策の目的のため、他の運用リージョンから離れている。
    • 特定の法的および規制要件を満たすことができる。
    • ストレージコストを削減できる。より低額なリージョンを選択してコストを抑えることができます。

Amazon S3 のイベント通知

  • Amazon S3 のイベント通知は、PUT、POST、COPY、DELETE といった Amazon S3 のアクションに対する応答として送信できる。
  • 通知メッセージは、Amazon SNSAmazon SQS を使用して送信したり、または AWS Lambda に直接送信したりできる。

Amazon S3 イベント通知を使用するコスト

  • Amazon S3 を用いてイベント通知を行うための追加料金はない
  • イベント通知を配信するための Amazon SNS または Amazon SQS の使用料金、または AWS Lambda 機能を実行するためのコストのみ必要

セキュリティ

データのセキュリティ

  • 作成時は、リソースの所有者のみがその作成した Amazon S3 リソースにアクセスできる。
  • Amazon S3 はユーザー認証をサポートし、データへのアクセスをコントロールしている。
  • バケットポリシーやアクセスコントロールリスト (ACL) などのアクセスコントロールカニズムを使用して、選択的にユーザーおよびユーザーのグループに権限を付与することができる。
  • Amazon S3 コンソールでは、パブリックにアクセス可能なバケットがハイライトされ、パブリックにアクセスされたアクセス元が示される。
  • また、バケットポリシーやバケット ACL への変更によりバケットがパブリックにアクセス可能になった場合、警告が出される。
  • パブリックにアクセスしたくないすべてのアカウントとバケットに対して、ブロックパブリックアクセスを有効にする必要がある。

  • HTTPS プロトコルを使用して、SSL エンドポイント経由で Amazon S3 にデータを安全にアップロードまたはダウンロードできる。

  • セキュリティの強化が必要な場合には、サーバー側の暗号化 (SSE) オプションを使用して、保存されているデータを暗号化できる。
  • 受信ストレージ要求に暗号化情報が含まれない場合、保存する前にオブジェクトを自動的に暗号化するよう Amazon S3 バケットを設定できる。
  • 固有の暗号化ライブラリを使用して、Amazon S3 に保存する前にデータを暗号化することもできる。

データへのアクセスのコントロール

  • Amazon S3 のリソースに対して、4 つのアクセスコントロールカニズムを使用することができる。

  • IAM により、複数の従業員がいる組織は、単一の AWS アカウントのもとに複数のユーザーを作成し、管理することができる。

  • IAM ポリシーにより、ユーザーが行うすべてを完全にコントロールしながら、お客様は Amazon S3 バケットやオブジェクトに対して細かく分けられたコントロールを IAM ユーザーに付与することができる。
  • バケットポリシーを使用すれば、書き込み特権を Amazon S3 リソースのサブセットに付与するといったような、Amazon S3 リソースに対する全リクエストに幅広く適用する規則を、お客様が定義できます。HTTP 参照子や - IP アドレスといったリクエストの側面を基にして、お客様がアクセスを制限することもできます。
  • ACL を使用すれば、特定のユーザーに対し、個々のバケットとオブジェクトに対する権限 (たとえば READ、WRITE、FULL_CONTROL) を、お客様が付与できる。
  • クエリ文字列認証を使用すれば、限定された時間にのみ有効な、Amazon S3 オブジェクトへの URL をお客様が作成できる。

Amazon S3 向け Amazon VPC エンドポイントとは何ですか?

  • Amazon S3 向け Amazon VPC エンドポイントは、Amazon グローバルネットワークを介して S3 へ接続できる VPC 内の論理エンティティ。
  • S3 の VPC エンドポイントには、ゲートウェイ VPC エンドポイントとインターフェイス VPC エンドポイントの 2 種類がある。
  • ゲートウェイエンドポイントは、Amazon ネットワークを介して VPC から S3 にアクセスするためにルートテーブルで指定するゲートウェイ
  • インターフェースエンドポイントは、プライベート IP を使用して、VPC 内、オンプレミス、または別の AWS リージョンから S3 にリクエストをルーティングすることにより、ゲートウェイエンドポイントの機能を拡張する。

バケットとアクセスポイントの違いは何ですか?

  • バケットはオブジェクトの論理ストレージコンテナであり、アクセスポイントはバケットとそのコンテンツへのアクセスを提供します。
  • アクセスポイントは、Amazon リソースネーム (ARN)、ホスト名 (https://[access_point_name]-[account ID].s3-accesspoint.[region].amazonaws.com 形式)、アクセスコントロールポリシー、ネットワークオリジンコントロールを持つバケット用に作成された個別の Amazon リソースです。

アクセスポイントを使用する理由

  • S3 Access Points を使用すると、特定のアプリケーション向けに用意されたポリシーを使用して共有データセットへのアクセスを許可するアクセスポイントをアプリケーションに合わせて作成できる。

アクセスポイントの管理

  • アクセスポイントの追加、表示、削除も、S3 コンソールおよび CLI によるアクセスポイントポリシーの編集できる。
  • さらに、CloudFormation テンプレートを使用してアクセスポイントがご利用いただけるようにもなる。
  • AWS CloudTrail ログを使用すると、「アクセスポイントの作成」や「アクセスポイントの削除」のようなアクセスポイントオペレーションのモニタリング、監査が可能。
  • AWS SCP をサポートする AWS Organizations を使用すると、アクセスポイントの使用量を制御できる。

参考資料

aws.amazon.com