[AWS CSAP] Amazon S3

本稿は、AWS Solution Architect Professional に出題される Amazon S3 について個人用にまとめた記事です。

Amazon S3 が出題されるシナリオ

  • ダウンロードが多いバケットのコストダウン方法は。
  • SSE-S3 の説明が正しい選択しはどれか。
  • データをテープライブラリに保存しているオンプレのアーキテクチャを S3 に移行する場合、どのストレージクラスを使用しますか。 ( Glacier )

Amazon S3 とは

Amazon Simple Storage Service はインターネット用のストレージサービスです。また、ウェブスケールのコンピューティングを開発者が簡単に利用できるよう設計されています。

Amazon S3 のウェブサービスインターフェイスはシンプルで、いつでも、ウェブのどこからでも容量に関係なくデータを格納および取得できます。これにより、すべての開発者が、スケーラブルで信頼性が高く、かつ高速で安価なデータストレージインフラストラクチャを利用できるようになります。このインフラストラクチャは、Amazon が使用しているウェブサイトのグローバルネットワークと同じものです。このサービスの目的は、規模の拡大や縮小のメリットを最大限に活かし、開発者に提供することです。
( https://docs.aws.amazon.com/ja_jp/AmazonS3/latest/dev/Welcome.html )

事前署名付き URL ( Pre Signed URL )

S3 に対して期限付きのアクセス権のある URL を発行できる S3 の標準機能です。

バージョニング

バージョン管理を使用して、Amazon S3バケットに保存されているすべてのオブジェクトのすべてのバージョンを保存、取得、復元できます。バージョニングを使用すると、意図しないユーザーアクションとアプリケーションエラーの両方から簡単に回復できます。

S3バージョン管理を有効にすると、既存のファイルはすべて、バージョンIDがNULLになります。

S3 MFA Delete

S3 MFA Delete は、バージョニング機能のオプションとして動作します。バージョン ID を指定する削除操作する場合、 MFA デバイスによる認証を必須とするオプションです。

バケットのバージョニング設定で MFA Delete が有効になっている場合に、オブジェクトバージョンを完全に削除したり、バケットのバージョニング状態を変更したりするには、バケット所有者はリクエストに x-amz-mfa リクエストヘッダーを含める必要があります。x-amz-mfa を含むリクエストでは、HTTPS を使用する必要があります。ヘッダーの値は、認証デバイスのシリアル番号、スペース、および認証デバイスに表示される認証コードの連結文字です。このリクエストヘッダーを含めない場合、リクエストは失敗します。

Transfer Acceleration

Amazon S3 との間で高速データ転送を実現するためのバケットレベルの機能です。クライアントと S3 バケットの間で、長距離にわたるファイル転送を高速、簡単、安全に行えるようになります。Transfer Acceleration では、Amazon CloudFront の世界中に分散したエッジロケーションを利用しています。エッジロケーションに到着したデータは、最適化されたネットワークパスで Amazon S3 にルーティングされます。

ただし、Transfer Accelerationに使用されるバケットの名前はDNSに準拠している必要があり、ピリオド( “。”)を含んではならないことに注意してください。
( https://docs.aws.amazon.com/ja_jp/AmazonS3/latest/dev/transfer-acceleration.html )

低冗長化ストレージ ( RRS )

S3 のストレージオプションの 1 つです。標準ストレージと比べて、冗長性レベルを下げる事で、重要性の低い、再生可能なデータを保存するのに適しています。標準ストレージと比べ 30% 以上価格が値引きされます。冗長性レベルが下がるので長期保存を目的としない、一時的な保存に向いています。

暗号化

データ保護には、転送時のデータを保護するものと、保管時のデータを保護するものがあります。保管時のデータを保護するには、以下のようなオプションがあります。

  • サーバー側の暗号化を使用する
  • クライアント側の暗号化

サーバー側の暗号化を使用したデータの保護

Amazon S3は、データセンターのディスクに書き込む際にデータをオブジェクトレベルで暗号化し、データにアクセスするときに復号します。暗号化キーの管理をどのように選択するかによって、相互に排他的な 3 つのオプションがあります。

  • Amazon S3 で管理されたキーによるサーバー側の暗号化 (SSE-S3) の使用

    各オブジェクトは、一意のキーで暗号化されます。追加の安全策として、キー自体を定期的にローテーションするマスターキーで暗号化します。Amazon S3 サーバー側の暗号化は、利用可能な最も強力なブロック暗号の 1 つである 256 ビットの Advanced Encryption Standard (AES-256) を使用してデータを暗号化します。
  • AWS KMS に保存されているキー (SSE-KMS) を使用してサーバー側暗号化を使用する

    SSE-S3 と似ていますが、いくつかの追加の利点があります。このサービスを使用した場合、追加の料金がかかります。Amazon S3 のオブジェクトへの不正アクセスに対する追加の保護を提供するエンベロープキー (つまり、データの暗号化キーを保護するキー) を使用するための個別のアクセス許可があります。SSE-KMS では、いつ、だれによってキーが使用されたかについての監査証跡も提供されます。また、暗号化キーを自分で作成して管理したり、ユーザーごと、使用しているサービスごと、および操作しているリージョンごとに一意のデフォルトキーを使用したりすることもできます。
  • お客様提供のキーによるサーバー側の暗号化 (SSE-C) を使用する

    お客様が暗号化キーを管理します。Amazon S3 は、ディスクに書き込む際の暗号化と、オブジェクトにアクセスする際の復号を管理します。

クロスリージョンレプリケーション ( CRR )

異なるリージョンのバケット間でオブジェクトの自動で非同期コピーを可能にします。

CRR の要件

  • ソースバケットと宛先バケットの両方でバージョン管理を有効にする必要があります。
  • ソースバケットと宛先バケットは異なるリージョンにある必要があります。
  • S3 にはソースバケットから宛先バケットにオブジェクトを複製する権限が必要です。
  • ソースバケットの所有者がバケット内のオブジェクトを所有していない場合、オブジェクト所有者はバケット所有者にオブジェクト ACL を使用して READ および READ_ACP 権限を付与する必要があります。

複製されるオブジェクトの種類

  • CRR 設定後に作成したオブジェクト。
  • 暗号化されていないオブジェクトと SSE-S3 または SSE-KMS を使用して暗号化されたオブジェクトの両方。ただし、 KMS キーを使用して暗号化されたオブジェクトを複製するオプションを明示的に有効化する必要があります。複製されたオブジェクトのコピーは、ソースオブジェクトに使用されたものと同じタイプのサーバ側復号化を使用して暗号化されます。
  • オブジェクトのメタデータ。
  • バケットの所有者がオブジェクトを読み取り、制御リストにアクセスする権限を持つソースバケット内のオブジェクト。
  • ソース ACL と宛先バケットが同じアカウントによって所有されていないときにレプリカの所有権を変更するように S3 に支持しない限り、オブジェクト ACL が更新されます。
  • オブジェクトタグ

複製されないオブジェクトの種類

  • CRR 設定前に存在していたオブジェクト。
  • 顧客提供 ( SSE-C ) 暗号化キーを使用してサーバ側の暗号化で作成されたオブジェクト。
  • SSE-KMS キーを使用してサーバ側で暗号化されたオブジェクト。デフォルトでは、Amazon S3 は KMS キーを使用して暗号化されたオブジェクトをレプリケートしません。ただし、レプリケーション設定でこれらのオブジェクトのレプリケーションを明示的に有効にして、Amazon S3 がこれらのオブジェクトをレプリケートできるように関連情報を提供することができます。
  • バケット所有者が権限をもたないソースバケット内のオブジェクト。
  • バケットレベルのサブリソースの更新。
  • ライフサイクル構成によって実行されるアクション。
  • 別の CRR によって作成されたソースバケット内のオブジェクト。

ストレージクラス

Amazon S3 では、各ユースケース向けに幅広いストレージクラスが提供されています。クラスの種類は、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) (長期アーカイブおよびデジタル保存) があります。Amazon S3 には、ライフサイクルを通じてデータを管理する機能が搭載されています。S3 ライフサイクルポリシーを設定すると、データは別のストレージクラスに自動的に移行されます。アプリケーションに変更を加える必要はありません。

S3 標準

アクセス頻度の高いデータ向けに高い耐久性、可用性、パフォーマンスのオブジェクトストレージを提供します。

S3 標準 – IA

アクセス頻度は低いが、必要に応じてすぐに取り出すことが必要なデータに適しています。S3 標準と同じ高い耐久性、高スループット、低レイテンシーを S3 標準より安く提供します。S3 標準と比べストレージ料金が安いので、長期保存、ファイルデータストア、に適しています。ただし、S3 標準 と異なり取り出しに料金がかかります。

S3 Intelligent-Tiering

アクセス頻度を監視し、S3 標準の長期間アクセスされていないオブジェクトは自動的に、標準 – 低頻度アクセス ( 標準 IA ) に移動します。 標準 IA にあるオブジェクトにアクセスが発生した場合は、S3 標準に移動します。この機能によりストレージコストの最適化ができるようになります。

S3 1 ゾーン – 低頻度アクセス

アクセス頻度は低いが、必要に応じてすぐに取り出すことが必要なデータに適しています。ひとつの AZ にデータを保存するため、S3 標準 – IA よりもコストを 20% 削減できます。アクセス頻度が低いデータに適した低コストのオプションが必要で、複数のアベイラビリティーを必要としないお客様に最適です。また、S3 クロスリージョンレプリケーションを使用して別の AWS リージョンからレプリケートされたデータを、コスト効率の高いストレージとして使用することもできます。S3 標準と異なり取り出しに料金がかかります。

S3 Glacier

セキュアで耐久性が高い、低コストのストレージクラスで、データのアーカイブに適しています。S3 標準と異なり取り出しに料金がかかります。また取り出しにも時間がかかります。取り出しには数分から数時間まで、3 種類のオプションを用意しています。

S3 Glacier Deep Archive

最も低コストのストレージクラスであり、1 年のうち 1 回か 2 回しかアクセスされないようなデータを対象とした長期保存やデジタル保存をサポートします。特に、金融サービス、ヘルスケア、パブリックセクターなどの規制が厳しい業界のお客様を対象としており、コンプライアンス要件を満たすために 7~10 年以上データセットを保管するように設計されています。S3 Glacier Deep Archive に保存されているオブジェクトはすべて地理的に分散した 3 つ以上のアベイラビリティーゾーンにレプリケートおよび保存され、、99.999999999% 以上の耐久性で保護されているだけでなく、12 時間以内に復元できます。S3 標準と異なり取り出しに料金がかかります。

Amazon S3 Glacier

ボールトロック

Glacier のボールトロックでは、ボールトロックポリシーを使用して、Glacier の各ボールトに対するコンプライアンス管理を簡単にデプロイして適用することができます。ボールトロックポリシーで「write once read many」(WORM) などのコントロールを指定して、ポリシーをロックし、今後編集できないようにします。ポリシーをロックすると変更できなくなります。

Glacier では、ボールトロックポリシーによって一連の管理を実施することにより、データ保持などのコンプライアンス目標の達成に役立てることができます。

インベントリ

Amazon S3インベントリは、ストレージの管理に役立つAmazon S3が提供するツールの1つです。これを使用して、ビジネス、コンプライアンス、および規制のニーズに合わせて、オブジェクトのレプリケーションおよび暗号化ステータスを監査およびレポートできます。Amazon S3インベントリを使用して、ビジネスワークフローとビッグデータジョブを簡素化および高速化することもできます。

リクエスター支払い

一般に、バケット所有者は、バケットに関連するすべてのAmazon S3ストレージおよびデータ転送コストを支払います。ただし、バケット所有者は、バケットをリクエスター支払いバケットとして構成できます。Requester Paysバケットでは、バケット所有者ではなくリクエスターがリクエストのコストとバケットからのデータダウンロードを支払います。バケットの所有者は常にデータの保存コストを支払います。

リクエスタ支払いバケットに関連するすべてのリクエストを認証する必要があります。リクエスト認証により、Amazon S3は、リクエスター支払いバケットの使用についてリクエスターを識別し、請求することができます。バケットをリクエスター支払いバケットとして設定した後、リクエスターは、POST、GET、およびHEADリクエストのヘッダー、またはRESTリクエストのパラメーターとしてx-amz-request-payerをリクエストに含める必要があります。

参考リンク

チートシート

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA