Jayendra’s Blog

この記事は自己学習用に「AWS Certification – Storage & Content Delivery – Cheat Sheet(Jayendra’s Blogより)」を日本語に訳した記事です。


Elastic Block Store – EBS

  • 仮想ネットワーク接続ブロックストレージ。
  • ボリュームを複数の EC2 インスタンスと共有することはできず、代わりに EFS を使用する。
  • EC2 ライフサイクルとは独立しています。
  • 1つの EC2 インスタンスに複数のボリュームをアタッチできます。
  • 同じ AZ のみで別の EC2 インスタンスにデタッチ & アタッチすることができます。
  • ボリュームは特定の AZ で作成され、AZ にまたがることはできません。
  • リージョン間でスナップショットをまたがることはできない
  • 別の AZ でボリュームを利用できるようにするには、ボリュームのスナップショットを作成し、リージョン内の任意の AZ で新しいボリュームに復元します。
  • ボリュームを別のリージョンで使用できるようにするには、ボリュームのスナップショットを別のリージョンにコピーし、ボリュームとしてリストアすることができます。
  • 1つのハードウェアコンポーネントの障害によるデータの損失を防ぐために、AZ 内でデータが自動的にレプリケートされるため、高耐久性を実現し、AZ で冗長化されます。
  • PIPOS は、例えばリレーションデータベース、NoSQL などの高一貫性 IO を必要とするトランザクションアプリケーションを実行するように設計されています。

S3

  • 無制限のストレージ、無制限のオブジェクト最大 5 TB のインターネットの Key Value ベースのオブジェクトストレージ。
  • (ブロックレベルのストレージではなく) オブジェクトレベルのストレージであり、OS または動的な Web サイトをホストするために使用することはできません (ただし、Javascript SDK で作業できます)
  • リージョン内の複数の施設にオブジェクトを冗長に保存することにより、耐久性を提供。
  • 転送中のデータの SSL 暗号化をサポートし、残りのデータ暗号化。
  • チェックサムを使用してデータの完全性を定期的に検証し、自動修復機能を提供。
  • イベント通知用の CloudTrail、CloudWatch、SNS と統合。
  • S3 リソース
    • バケットとバケットに格納されたオブジェクトから成り、独自の開発者が割り当てたキーを使用して取得できます。
    • バケット名はグローバルに一意です。
    • データモデルは階層またはフォルダを持たないフラット構造です。
    • 論理階層は、Folder1/Object1 などの Keyname プレフィックスを使用して推論できます。
  • バケットとオブジェクトの操作
    • 1000個のオブジェクトの取得を許可し、ページネーションのサポートを提供し、多数のオブジェクトを含むリストまたはプレフィックスクエリには適していません。
    • 1つの PUT 操作では、5GB サイズのオブジェクトをアップロードすることができます。
    • マルチパートアップロードを使用して最大 5 TB までのラージオブジェクトをアップロードし、フォールトトレラントアップロードには 100MB 以上のオブジェクトサイズを推奨。
    • 範囲のHTTPヘッダーを使用して、ネットワーク接続が不良なフォールトトレラントダウンロード用の部分オブジェクトを取得する。
    • 事前に署名された URL は、AWS セキュリティ認証情報を必要とせずに、限られた時間の間、オブジェクトのアップロード/ダウンロードに共有することもできます。
    • 単一の呼び出しで1つのオブジェクトまたは複数のオブジェクト (最大 1000) を削除できます。
  • マルチパートアップロード**
    • スループットと帯域幅の使用率を向上させたパラレルアップロード。
    • フォールトトレランスとネットワークの問題からの迅速な回復。
    • アップロードを一時停止および再開する機能。
    • 最終的なオブジェクトサイズがわかっている前にアップロードを開始する。
  • バージョニング
    • すべてのオブジェクトのすべてのバージョンを保存、取得、および復元できます。
    • 個々のファイルを保護するが、バケットの削除から保護しない。
  • ストレージ階層
    • 標準
      • 既定のストレージクラス。
      • 99.999999999% の耐久性と 99.99% の可用性。
      • 低レイテンシと高スループット性能。
      • 2つの施設でデータの損失を維持するように設計。
    • スタンダード IA
      • 長寿命でアクセス頻度の低いデータに最適化。
      • 2つの施設でデータの損失を維持するように設計。
      • 99.999999999% の耐久性と 99.9% の可用性。
      • 128 KB を超えるオブジェクトに対して、少なくとも30日間保管する場合に適しています。
    • 低冗長性ストレージ
      • 標準ストレージクラスよりも低いレベルの冗長性で保存された、重要でない再現性のあるデータのために設計された。
      • ストレージ・コストの削減。
      • 99.99% の耐久性と 99.99% の可用性。
      • 単一の施設でデータの損失を維持するように設計。
    • Glacier
      • データのアクセス頻度が低いデータのアーカイブに適しており、数 (3-5)時間の取得時間が許容される。
      • 99.999999999% の耐久性
  • ライフサイクル管理ポリシー
    • 異なるストレージクラスと Glacier にオブジェクトを移動するためのトランジション。
    • オブジェクトを削除するための有効期限。
  • データ整合性モデル
    • 新しいオブジェクトの PUT に対する読み書き後の一貫性を提供し、上書きの PUT と DELETE の一貫性を維持する。
    • 新しいオブジェクトの場合は、複数の施設間でデータを同期的に保存してから成功を返します。
    • 1つのキーへの更新はアトミック
  • セキュリティ
    • IAM ポリシー – 自分の AWS アカウント内のユーザーに、S3 リソースへのアクセス許可を付与する。
    • バケットおよびオブジェクト ACL – 他の AWS アカウント (特定のユーザーではない) に S3 リソースへのアクセスを許可する。
    • バケットポリシー – 1 つのバケット内のオブジェクトの一部またはすべてにわたってアクセス許可を追加または拒否できます。
  • ベストプラクティス
    • S3 は、オブジェクト辞書のランダム性は、より良いパフォーマンスのために複数のパーティションにコンテンツを配布することができます。ストアとして、キーのために無作為のハッシュプレフィックスを使用し、ランダムアクセスパターンを確保する。
    • 並列スレッドとマルチパートアップロードを使用して高速書き込みを行う
    • 並列スレッドと範囲ヘッダーを使用して高速読み取りを行う
    • 多数のオブジェクトを持つリスト操作の場合、DynamoDB でセカンダリインデックスを構築する方が優れています。
    • バージョン管理を使用して、意図しない上書きや削除から保護しますが、バケットの削除は保護されません
    • VPC で VPC S3 エンドポイントを使用して、Amazon インターネットネットワークを使用してデータを転送する。

Glacier

  • データへのアクセス頻度が低いデータのアーカイブに適しており、数時間 (3 ~ 5 時間) の取得時間が許容されます。 (AWS からの拡張機能には該当しません)
  • 非常に低コストのストレージで複数の設備と複数のデバイスにアーカイブを保存することにより、高い耐久性を提供。
  • 定期的に、体系的なデータ整合性チェックを実行し、自動的に自己治癒するように構築されています。
  • より大きなファイルにファイルを集約して Glacier に送信し、範囲取得を使用して部分ファイルを取得し、コストを削減。
  • マルチパートアップロードで速度と信頼性を向上。
  • AES-256 を使用してデータを自動的に暗号化する
  • SSL 暗号化エンドポイントを介して Glacier へのデータのアップロードまたはダウンロード

CloudFront

  • 静的、動的なWebコンテンツまたはストリーミングコンテンツをWebユーザに配信するためのレイテンシとデータ転送速度が高い。
  • エッジロケーションと呼ばれるデータセンターの世界的なネットワークを通じてコンテンツを配信。
  • オリジンサーバーとの永続的な接続を保持して、ファイルをオリジンサーバーからできるだけ早くフェッチできるようにします。
  • ユーザーの要求が通過する必要があるネットワークホップの数を大幅に削減。
  • S3、EC2、ELB、またはオンプレミスサーバなどの AWS ホストサービスのように、複数のオリジンサーバオプションをサポートし、オブジェクトのオリジナルの決定的バージョンを格納します。
  • 1つのディストリビューションで複数のオリジンを持つことができ、キャッシュ動作にパスパターンを指定すると、どの要求が原点にルーティングされるかが決まります。
  • Web ダウンロード配信と RTMP ストリーミング配信をサポート。
    • Web ディストリビューションは、プログレッシブダウンロード & HLS とライブストリーミングビデオコンテンツを使用してオンデマンドで、静的、動的な web コンテンツをサポートしています。
    • RTMP は、Adobe Media サーバーと Adobe リアルタイムメッセージングプロトコル (RTMP) のみを使用してメディアファイルのストリーミングをサポートしています。
  • どちらかを使用して HTTPS をサポート
    • 専用 IP アドレスは、各 CloudFront エッジの場所に割り当てられているため、専用の IP アドレス。
    • Server Name Indication(sni) は、無料ですが、要求ヘッダーで利用可能なドメイン名のみで、最新のブラウザでサポートされています。
  • E2E HTTPS接続の場合は、
    • 視聴者 -> CloudFront自己署名証明書、または CA または ACM によって発行された証明書を必要とする。
    • CloudFront -> オリジンELB と他のオリジンのために CA によって発行された証明書を必要とする
  • セキュリティ
    • オリジンアクセス ID (OAI) を使用して、S3 オリジンからのコンテンツを CloudFront からのみアクセスできるように制限することができます。
    • **コンテンツにアクセスできる国のホワイトリストまたはブラックリストへの地理的制限 (Geo ブロッキング) **をサポート
    • 署名付き URL
      • 署名付き Cookie がサポートされていない RTMP ディストリビューションの場合。
      • アプリケーションのインストールダウンロードなど、個々のファイルへのアクセスを制限します。
      • Cookie をサポートしないカスタム HTTP クライアントなどのクライアントを使用するユーザー。
      • 署名付きクッキー
      • HLS 形式のビデオパーツファイル、または Web サイトの購読者エリア内のすべてのファイルなど、複数の制限されたファイルへのアクセスを提供します。
      • 現在の URL を変更したくない。
    • IP アドレス、HTTP ヘッダー、およびカスタム URI 文字列に基づいて構成されたルールを許可することによって、Web アプリケーションを攻撃から保護するための Web アプリケーションファイアウォールである AWS WAF と統合します。
  • GET,HEAD,OPTIONS,PUT,POST,PATCH,DELETE、オブジェクト & オブジェクトヘッダの取得、オブジェクトの追加、更新、削除をサポート。
    • GETおよびHEAD要求への応答とオプションでOPTIONS要求のみをキャッシュする。
    • PUT,POST,PATCH,DELETE リクエストメソッドに対する応答をキャッシュせず、これらのリクエストはオリジンに戻されます。
  • キャッシュからのオブジェクトの削除
    • デフォルトでは、キャッシュからの有効期限 (TTL)に削除される。デフォルト24時間。
    • 明示的に無効にすることができますが、コストが関連付けられていますが、これらのキャッシュから期限が切れるまで、古いバージョンが引き続き表示される場合があります。
    • オブジェクトは Web ディストリビューションに対してのみ無効にできます。
    • 異なるバージョンを提供するために、オブジェクト名のバージョン管理を変更する。
  • 要求がオリジンに送信される前にカスタムヘッダーの追加または変更をサポートします。
    • ユーザーが CND からコンテンツにアクセスしているかどうかを検証する。
    • 複数の CloudFront ディストリビューションの場合に、要求が転送された CDN の識別。
    • CORS をサポートしていない視聴者が、すべての要求に対してアクセス制御の許可元ヘッダーを返す。
  • 範囲ヘッダーを使用して部分的な GET 要求をサポートし、小さな単位でオブジェクトをダウンロードして部分的なダウンロードの効率を改善し、部分的に失敗した転送からの回復。
  • 視聴者のリクエストにAccept-Encoding:gzipがリクエストヘッダーに含まれている場合に圧縮を圧縮して提供する圧縮をサポート。
  • 最も高価なリージョンを除外するために、すべてのリージョンを含めるために異なる価格クラスをサポートし、最もコストの低いリージョンと他のリージョンだけを含めるようにします。
  • Web と RTMP の両方の配布に対するすべてのユーザー要求に関する詳細情報を含むアクセスログをサポートします。

AWS Import/Export

  • ポータブルストレージデバイスを使用して AWS に大量のデータを転送し、Amazon の高速内部ネットワークを使用して直接データを転送し、インターネットをバイパスして、移動を加速します。
  • 適した使用例
    • 大規模なデータセット
    • 低帯域幅接続
    • データの最初の移行
  • EBS スナップショット、S3 バケット、Glacier ボールトなど、複数のタイプの AWS ストレージにデータをインポートする。
  • バージョン管理が有効になっているだけで、S3 からデータをエクスポートすると、最新バージョンのみがエクスポートされます
  • インポートデータは暗号化することができます (省略可能ですが推奨) エクスポートは常に Truecrypt を使用して暗号化されます。
  • 指定された場合、Amazon はデバイスをワイプしますが、デバイスは破棄されません。