STAY KOBE

[SolutionArchitect Pro] AWS CloudFront

CloudFront の概要

ソリューションアーキテクトプロフェッショナル試験のための最も重要なトピック

CloudFront のメリット

構成とコンテンツの配信

配送方法

ウェブディストリビューション

RMTP 分布

オリジン

キャッシュの動作

ビューアプロトコルポリシー

HTTPS 接続

許可される HTTP メソッド

CloudFront エッジキャッシュの改善

オブジェクトのキャッシュと有効期限

ビューアアクセスの制限

プライベートコンテンツの提供

署名付き URL 対 署名付き cookie

規定ポリシーとカスタムポリシー

圧縮ファイルの提供

配信の詳細

価格クラス

代替ドメイン名 (CNAME)

地理的制限 (Geoblocking)

Amazon S3 と CloudFront

オリジンアクセス ID

オブジェクトの操作

オブジェクトの追加と更新

オブジェクトの削除/無効化

部分リクエスト(範囲 GETs)

アクセスログ

CloudFront コスト


AWS認定試験の練習問題

  1. あなたの会社は、各ページに画像がロードされた小さなトラッキングのウェブページユーザーを追跡する方向に移動しています現在、米国東部からこの画像を配信していますが、西海岸のユーザーの画像を読み込む時間がかかり始めています。このイメージの配信をスピードアップする2つの最良の方法は何ですか? 2つの回答を選択
    1. **ルート53のレイテンシベースのルーティングを使用して、米国のイメージを US-West-2 だけでなく、US-East-1 も提供。
    2. CloudFront を介してイメージを提供する
    3. S3 からイメージを提供して、Web アプリケーション層のサービスが提供されないようにする
    4. EBS PIOPs を使用して、EC2 インスタンスからイメージを高速に提供する
  2. Elastic Beanstalk を使用して会社のウェブサイトを展開し、S3 にログファイルのローテーションを有効にしました。EMR ジョブは、定期的に S3 のログを分析して、CIO と共有する利用状況ダッシュボードを作成します。あなたは最近、動的なコンテンツ配信のためのクラウドフロントを使用してウェブサイトの全体的なパフォーマンスを改善し、オリジンとしてのウェブサイト。このアーキテクチャの変更後、使用状況ダッシュボードには、Web サイトのトラフィックが桁違いに減少していることが示されます。どのようにあなたの使用状況ダッシュボード を修正するのですか?[PROFESSIONAL]
    1. CloudFront が S3 にアクセスログを配信し、それらを Elastic Map Reduce ジョブの入力として使用できるようにする
    2. Cloud Trail をオンにして S3 のトレイルログタイルを Elastic Map Reduce ジョブの入力として使用する
    3. Elastic Map Reduce ジョブの入力として Cloud Watch ELB メトリックを使用するようにログ収集プロセスを変更します。
    4. Elastic Beanstalk の “Rebuild Environment”オプションを使用して、Elastic Map Reduce ジョブへのログ配信を更新します。
    5. Elastic Beanstalk の “Restart App server(s)” オプションを使用して、Elastic Map Reduce ジョブへのログ配信を更新します。
  3. AWS のお客様は、公開ブログのウェブサイトを運営しています。 サイトユーザーは月に200万件のブログエントリをアップロードします。 ブログエントリの平均サイズは200 KBです。 ブログエントリへのアクセス率は、出版後6ヶ月で無視され、ユーザは出版後1年でブログエントリにアクセスすることはほとんどありません。 さらに、ブログエントリーは、出版後最初の3ヶ月間に更新率が高い。 6ヶ月後には更新されません。 顧客は、CloudFront を使用してユーザーの読み込み時間を改善したいと考えています。 次の推奨事項のどれをお客様に提示しますか?[PROFESSIONAL]
    1. エントリを2つの異なるバケットに複製し、2つの別個の CloudFront ディストリビューションを作成して、S3 アクセスがクラウドフロント ID のみに制限される
    2. 米国/ヨーロッパユーザー向けの「米国 & ヨーロッパ」価格クラスと、残りのユーザーのすべてのエッジロケーションを持つ別の cloudfront ディストリビューションを使用して、cloudfront ディストリビューションを作成します。
    3. S3 アクセスが CloudFront ID のみに制限された CloudFront ディストリビューションを作成し、CloudFront ビヘイビアで使用するためにアップロードされた月に従って S3 でブログエントリの場所を分割します
    4. ビューアへのアクセスを制限するフォワードクエリ文字列を True に設定し、最小 TTL を 0 にして CloudFront ディストリビューションを作成します。
  4. あなたの会社には社内マルチティアの PHP Web アプリケーションがあります。これは最近、会社の発表により Web トラフィックが大幅に増加したため、ダウンタイムが発生しました。 次の日、同様の予期せぬバーストを起こすような同様のアナウンスが予想され、予期せぬトラフィックの増加を処理するインフラストラクチャの機能を迅速に改善する方法を模索しています。 このアプリケーションは現在、ロードバランサといくつかの Linux Apache Web サーバー、および MySQL データベースをホストする Linux サーバーをホストするデータベース層からなる2層の Web 層で構成されています。 次のシナリオでは、フルサイト機能を提供しながら、短期間でアプリケーションの能力を向上させるのに役立ちますか?
    1. オンプレミス環境からのトラフィックのオフロード CloudFront ディストリビューションを設定し、カスタムオリジンのオブジェクトをキャッシュするように CloudFront を設定するオブジェクトキャッシュの動作をカスタマイズし、オブジェクトがキャッシュ内に存在するはずのTTLを選択します。
    2. AWSへの移行 VM のインポート/エクスポートを使用して、オンプレミス Web サーバーを AMI にすばやく変換します。インポートされた AMI を使用して着信トラフィックに基づいて Web 層を拡張する Auto Scaling グループを作成します。RDSインスタンスとオンプレミス MySQL サーバーを使用してデータベースを移行します。
    3. フェイルオーバー環境:S3 バケットを作成して Web サイトのホスティングを構成するゾーンを使用して DNS を Route53 に移行する(Route53 DNS フェイルオーバーを利用して S3 ホストされた Web サイトへのフェイルオーバーを行う)
    4. ハイブリッド環境 EC2 で Web セラファーを起動するために使用できる AMI を作成。AMIを使用して着信トラフィックに基づいて Web 層を拡張する Auto Scaling グループを作成する Elastic Load Balancing を使用して、AWSでホストされる。
  5. 機密トレーニングビデオを従業員に配信するシステムを構築しています。CloudFront を使用すると、s3 に格納されているが、直接 S3 からアクセスできないコンテンツを提供するためにどのような方法を使用できますか?
    1. CloudFront のオリジンアクセス ID (OAI) を作成し、その OAI に S3 バケット内のオブジェクトへのアクセスを許可します。
    2. 適切な S3 バケットポリシーに、CloudFront アカウントセキュリティグループ “amazon cf/amazon-cf-sg” を追加します。
    3. CloudFront の ID およびアクセス管理 (IAM) ユーザーを作成し、その IAM ユーザーに S3 バケット内のオブジェクトへのアクセスを許可します。
    4. Amazon リソース名 (ARN) として、プリンシパルとターゲットバケットとして CloudFront ディストリビューション ID を一覧表示する S3 バケットポリシーを作成します。
  6. メディア制作会社は、世界中のお客様に試作とダビングのための高精細 RAW ビデオを提供したいと考えています。彼らは、彼らのシナリオのために Amazon CloudFront を使用したいと思います、そして、彼らは、構成可能な数に顧客とビデオ・ファイルごとのダウンロードを制限する能力を必要とします。TTL = 0 の CloudFront ダウンロードディストリビューションはすでに、すべてのクライアント HTTP リクエストが Amazon Elastic コンピュートクラウド (EC2)/RDS で認証バックエンドをヒットしたことを確認するためにセットアップされていますが、これはダウンロード数を制限する責任があります。コンテンツは S3 に格納され、CloudFront 経由でのみアクセスできるように構成されています。要件を満たすアーキテクチャを実現するために、他に何を行う必要があるか。2つの回答を選ぶ [PROFESSIONAL]
    1. URL パラメータの転送を有効にし、認証バックエンドが RDS の顧客ごとのダウンロード数をカウントし、ダウンロードの制限に達しない限り、コンテンツ S3 の URL を返すようにします。
    2. CloudFront が S3 バケットにログインできるようにし、EMR を活用して CloudFront ログを分析し、お客様ごとのダウンロード数を決定し、ダウンロード制限に達しない限りコンテンツ S3 URL を返します。(CloudFront ログは定期的に記録され、EMR はリアルタイムではないため、適切ではありません)
    3. URL パラメータの転送を有効にし、認証バックエンドで RDS の顧客ごとのダウンロード数をカウントし、ダウンロード制限に達するとすぐに CloudFront ディストリビューションを無効にします。(配信は無効ではありませんがオブジェクト)
    4. CloudFront が S3 バケットにログインできるようにするには、認証バックエンドがこれらのログを解析して顧客ごとのダウンロード数を決定し、ダウンロード制限に達しない限りコンテンツ S3 URL を返すようにします。(CloudFront ログは定期的に記録され、EMR はリアルタイムではないため、適切ではありません)
    5. 信頼された署名者の一覧を構成し、認証バックエンドが RDS の顧客ごとのダウンロード要求数をカウントし、ダウンロード制限に達しない限り、動的に署名した URL を返します。
  7. お客様の顧客は、AWS 上でビデオオンデマンドストリーミングプラットフォームを実装しています。 要件は、iOS、Android、PC などの複数のデバイスをクライアントデバイスとしてサポートし、標準のクライアントプレーヤーを使用し、ストリーミングテクノロジ(ダウンロードではない)とスケーラブルなアーキテクチャを使用してコスト効率を向上させます。[PROFESSIONAL]
    1. ビデオコンテンツをオリジンサーバーとして Amazon シンプルストレージサービス (S3) に保存します。ストリーミングオプションを使用して Amazon CloudFront ディストリビューションを構成し、ビデオコンテンツをストリーム配信する。
    2. ビデオコンテンツをオリジンサーバーとして Amazon S3 に保存します。ビデオコンテンツをストリーミングするためのダウンロードオプションを使用して Amazon CloudFront ディストリビューションを設定する (リンクを参照)
    3. Amazon エラスティックコンピューティングクラウド (EC2) 上でストリーミングサーバー (たとえば、Adobe Media server) を起動し、ビデオコンテンツをオリジンサーバーとして保存します。ビデオコンテンツをストリーミングするためのダウンロードオプションを使用して Amazon CloudFront ディストリビューションを構成する。
    4. Amazon エラスティックコンピューティングクラウド (EC2) 上でストリーミングサーバー (たとえば、Adobe Media server) を起動し、ビデオコンテンツをオリジンサーバーとして保存します。ビデオコンテンツをストリーミングするために、Amazon EC2 上で必要な量のストリーミングサーバーをエッジサーバーとして起動および構成する。
  8. あなたは、ニュースを共有するモバイルアプリケーションのためのアーキテクトです。世界のどこでも、ユーザーは選択したトピックのローカルニュースを見ることができます。彼らは、アプリケーションの中から写真やビデオを投稿することができます。アプリケーションは、携帯電話で使用されているので、接続の安定性は、コンテンツをアップロードするために必要であり、配信が迅速である必要があります。コンテンツは、投稿された後の最初の分に大量にアクセスされますが、消える前にすぐに新しいコンテンツに置き換えられます。ニュースのローカルな性質は、アップロードされたコンテンツの90パーセントは、ローカル (それが掲載された場所から100キロ未満) を読むことを意味します。ユーザーがコンテンツをアップロードして表示するときに、ページの読み込み時間を最小化し、アップロード時間を最小化することによって、どのようなソリューションを最適化しますか。[PROFESSIONAL]
    1. コンテンツをアップロードして中央の Amazon シンプルストレージサービス (S3) バケットに保存し、コンテンツ配信用の Amazon クラウドフロントディストリビューションを使用します。
    2. ユーザーに最も近いリージョンの Amazon S3 バケットにコンテンツをアップロードして保存し、コンテンツ配信に複数の Amazon クラウドフロントディストリビューションを使用します。
    3. ユーザーに最も近いリージョンの Amazon エラスティックコンピューティングクラウド (EC2) インスタンスにコンテンツをアップロードし、コンテンツをセントラル S3 バケットに送信し、コンテンツ配信用に Amazon Cloud のフロントディストリビューションを使用します。
    4. Amazon Cloud のフロントディストリビューションを使用して、コンテンツをセントラル Amazon S3 バケットにアップロードし、コンテンツを配信します。
  9. ユーザーのブラウザから CloudFront 経由でオリジンへのエンドツーエンドの HTTPS 接続を有効にするには、次のオプションのどれが有効ですか?2つの回答を選ぶ [PROFESSIONAL]
    1. CloudFront のオリジンおよび CloudFront のデフォルト証明書で自己署名証明書を使用します。(オリジンは自己署名できません)
    2. オリジンと CloudFront の両方で CloudFront デフォルト証明書を使用する (CloudFront cert をオリジンに適用することはできません)
    3. CloudFront のオリジンおよび CloudFront のデフォルト証明書でサードパーティ CA 証明書を使用する
    4. オリジンと CloudFront の両方でサードパーティ CA 証明書を使用する
    5. オリジンと CloudFront の両方で自己署名証明書を使用する (オリジンは自己署名できません)
  10. アプリケーションは 10% の書き込みと 90% の読み取りで構成されています。現在、EC2 Auto スケーリンググループの前にある AWS ELB に向けた Route53 エイリアスレコードを使用して、すべてのリクエストをサービスします。特定のニュースイベント中に大量のトラフィックが急増し、その間に多くの人が同じようなデータを同時に読み取るよう要求する場合、システムは非常に高価になっています。このようなスパイクでコストとスケールを削減するための最も簡単で安い方法は何ですか?[PROFESSIONAL]
    1. S3 バケットを作成し、共通要求の応答を S3 オブジェクトに非同期的にレプリケートします。事前計算された応答のリクエストが入ったら、AWS S3 にリダイレクトします。
    2. 他のシステムの上にマウントされている別の ELB および Auto Scaling グループレイヤを作成し、システムにティアを追加します。最上層からのほとんどの読まれた要求を提供しなさい
    3. CloudFront Distribution を作成し、Distribution に Route53 を誘導します。 ELB をオリジンとして使用し、キャッシュ動作をプロキシキャッシュ要求に指定します。これは遅く処理できます。(CloudFront のキャッシュからのサーバリクエスト、および複数のキャッシュ動作は、ファイル拡張子、ファイル名、または URL の任意の部分に基づいて、指定された URL パターンのルールに基づいて定義できます。ビューア接続プロトコル、最小有効期限、クエリ文字列パラメータ、Cookie、プライベートコンテンツの信頼された署名者)
    4. AWS ElastiCache で Memcached クラスタを作成します。キャッシュロジックを作成して、メモリ内キャッシュから遅延してパフォーマンスを向上させることができる要求を提供します。
  11. クリックストリームデータを一括して集計し、週に1回だけ電子メールでレポートを配信するサービスを設計しています。データは非常にスパイク状であり、地理的に分散しており、大規模であり、予測不能である。このシステムをどのように設計すべきですか?
    1. 大規模な RedShift クラスタを使用して分析を行い、Lambda プラットフォームは RedShift テーブルにレコードを挿入します。Lambda はトラフィックの急増に十分に迅速に対応します。
    2. S3 にアクセスログを配信する CloudFront ディストリビューションを使用します。クリックは、クエリ文字列 GET として配信に記録する必要があります。レポートは、S3のアクセスログで定期的に実行される EMR ジョブによって構築され、送信されます。(CloudFrontは、ギガビット・スケールのHTTP(S)グローバルリクエスト配信サービスで、10 Gbpsまたは15,000 RPSを超えるピークでうまく動作し、規模、地理的分布、スパイク、予期しないことを処理できます。バッチ分析やEMRを使用した電子メールでも問題なく機能します。他のストリーミングオプションは、バッチ分析が必要なため、必要でないため高価です)
    3. APIゲートウェイは Kinesis に PutRecords を呼び出し、Spark を実行する EMR は Kinesis 上で GetRecords を実行しスパイクで拡大縮小します。 EMR に点火すると S3 に分析結果が出力され、電子メールで送信されます。
    4. AWS Elasticsearch サービスと EC2 自動スケーリンググループを使用します。自動スケーリングのグループは、クリックのスループットに基づいてスケールし、スケーラブルな Elasticsearch ドメインにストリーミングします。定期的にレポートを生成するには、Kibanaを使用します。
  12. あなたのウェブサイトは、オンデマンドのトレーニングビデオをあなたの従業員に提供しています。動画は毎月高解像度の MP4 形式でアップロードされます。あなたの従業員は、ビデオを見るために HTTP ライブストリーミング(HLS)プロトコルを必要とする会社提供のタブレットを使用して、世界中で頻繁に配信されます。あなたの会社にはビデオトランスコーディングの専門知識はなく、コンサルタントに支払う必要があるかもしれません。高可用性とビデオ配信の品質を損なうことなく、コスト効率の高いアーキテクチャをどのように実装しますか? [PROFESSIONAL]
    1. Elastic Transcoder を使用してオリジナルの高解像度 MP4 ビデオを HLS にトランスコードします。 S3 はライフサイクルマネジメントのビデオをホストし、元のファイルを数日後に Glacier に保存する。 CloudFront は S3 から HLS トランスコードされた動画を提供します。
    2. タスクを配信するために SQS を使用するビデオトランスコーディングパイプラインと、キューの長さに応じてノード数を調整する自動スケーリングライフサイクル管理を使用してビデオをホストする S3 すべてのファイルを数日後に Glacier にアーカイブする CloudFront
      から HLS トランスコーディング Glacier の動画。
    3. Elastic Transcoder を使用してオリジナルの高解像度 MP4 ビデオを HLS EBS ボリュームにトランスコードしてビデオをホストし、EBS スナップショットを使用して数日後に元のルートを増分バックアップします。 EC2 から HLS トランスコードビデオを提供するCloudFront。
    4. タスクを配信するために SQS を使用して EC2 上で実行されるビデオトランスコードパイプライン、およびキューの長さに応じてノードの数を調整する自動スケーリング EBS ボリュームでビデオをホストし、EBS スナップショットを使用して数日後に元のファイルを増分バックアップします。 EC2 から HLS トランスコードビデオを提供する CloudFront

リファレンス


Jayendra’s Blog

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