STAY KOBE

[SolutionArchitect Pro] AWS ElastiCache

AWS ElastiCache

Redis Memcached
永続 永続性ストレージを提供し、DB の代替 純粋にキャッシュソリューションであり、データの原点として DB を使用する
オブジェクトタイプ ハッシュ、リスト、セットなどの複雑なデータオブジェクト シンプルなキー値ストレージ
スケーリング 垂直スケーリングがサポートされます。水平スケーリングはできません。リードレプリカの作成が可能 垂直および水平スケーリングサポート
マルチAZ マルチ AZ サポート & バックアップ・ノードへの自動フェイルオーバー マルチ AZ はサポートされていません
バックアップと復元 サポートされるバックアップと復元の機能 バックアップと復元の機能がサポートされていない
パブ/サブ機能 パブ/サブ機能を提供 パブ/サブ機能は提供されません
サイズ キーあたり 512MB までの値 キーあたり 1MB までの値

Redis

Redis リードレプリカ

Redis マルチ AZ

Redis バックアップ & リストア

Memcached

エラーを緩和する ElastiCache


AWS認定試験の練習問題

  1. Amazon ElastiCache は何を提供していますか?
    1. この名前のサービスは存在しません。おそらく、Amazon CloudCache を意味します
    2. 膨大な量のメモリを持つ仮想サーバー
    3. マネージインメモリキャッシュサービス
    4. Memcached ソフトウェアが既にプレインストールされている Amazon EC2 インスタンス
  2. ステートレス Web サーバーを使用して高可用性 Web アプリケーションを開発しています。セッション状態データの保存に適したサービスはどれですか。3つの回答を選択します。
    1. Elastic Load Balancing
    2. Amazon Relational Database Service (RDS)
    3. Amazon CloudWatch
    4. Amazon ElastiCache
    5. Amazon DynamoDB
    6. AWS Storage Gateway
  3. どのステートメントが最も ElastiCache について説明しますか?
    1. 複数の AZ にわたってワークロードを分割することにより、レイテンシを短縮
    2. 簡単な Web サービスインターフェイスを作成し、複数のデータセットを格納し、簡単にデータを照会し、結果を返す
    3. 読み取り負荷が大きいワークロードによる待ち時間を削減するために、データベースからの読み取りトラフィックをオフロードする
    4. クラウド内のリレーショナル・データベースの設定、運用、拡張が容易になるマネージド・サービス
  4. 当社は、AWS のソーシャルメディアサイトの主要な公開発表を行う準備をしています。Web サイトは、マルチ AZ RDS MySQL エクストララージ DB インスタンスを使用して複数のアベイラビリティーゾーンにデプロイされた EC2 インスタンスで実行されています。このサイトでは、1秒あたりの小さな読み取りと書き込みの数が多いため、最終的な整合性モデルに依存します。包括的なテストの後には、RDS MySQL の読み取り競合があることがわかります。これらの要件を満たすために最適なアプローチはどれですか。(2つの回答を選択)
    1. 各アベイラビリティーゾーンで実行中の ElastiCache インメモリキャッシュを展開する
    2. 複数の RDS MySQL インスタンスに負荷を分散するためのシャーディングを実装する
    3. RDS MySQL インスタンスサイズを増やし、プロビジョニングされた IOPS を実装する
    4. 各アベイラビリティーゾーンに RDS MySQL リードレプリカを追加する
  5. ElastiCache Memcached を使用してセッション状態を保存し、データベースクエリをインフラストラクチャにキャッシュしています。 CloudWatchでは、Evictions と Get Miss が両方とも非常に高いことに気付きました。 これを是正するために、あなたはどのような行動を取ることができますか? 2つの回答を選択
    1. クラスタ内のノード数を増やす
    2. max_item_size パラメータを微調整する
    3. クラスタ内のノード数を縮小する
    4. クラスタ内のノードのサイズを大きくする
  6. e コマース web アプリケーションをお客様のデータセンターから VPC に移行することを任務としています。アプリケーションは、フォールトトレラントであり、拡張性も高くなければなりません。さらに、顧客はサービス中断がユーザーエクスペリエンスに影響しないことを断固としています。起動に近づくにつれて、アプリケーションは現在、マルチキャストを使用して Web サーバー間でセッション状態を共有することを発見し、VPC 内のセッション状態を処理するために次のことを選択します。
    1. Redis 用の Amazon ElastiCache にセッション状態を保存する (スケーラブルで、Web アプリケーションをステートレスにする)
    2. インスタンス間でメッシュ VPN を作成し、マルチキャストを許可する
    3. Amazon リレーショナルデータベースサービスでのセッション状態の保存 (拡張性の高い RDS ソリューションではない)
    4. ELB による スティッキーセッションの有効化 (インスタンスがダウンした場合のユーザーエクスペリエンスへの影響)
  7. 24時間の flash セールをサポートするように設計している場合、次のいずれかの方法が最も適しているのは、異常に重いトラフィックに追いついている間のレイテンシーを短縮するための戦略です。
    1. 大量のトラフィックをサポートするために、配置グループで拡張ネットワーキングインスタンスを起動する (内部通信のみを向上させる)
    2. 3層アーキテクチャの代わりにサービス指向アーキテクチャ (SOA) の原則を適用する (アーキテクチャを簡素化するだけ)
    3. Elastic Beanstalk を使用してBlue/Green デプロイメントを有効にする (アプリケーションのダウンロードを最小限に抑え、ロールバックを容易にする)
    4. DynamoDB の上にあるメモリ内ストレージとして ElastiCache を使用して、ユーザーセッション (スケーラブル、高速読み取り/書き込み、およびメモリストレージ) を格納します。
  8. 自動スケーリングを使用するように会社のアプリケーションを構成し、ユーザー状態情報を移動する必要がある場合。耐久性と待ち時間の短い共有データストアを提供する次のAWSサービスはどれですか?
    1. AWS ElastiCache Memcached (ノードがデータがなくなったかのように耐久性を提供しません)
    2. Amazon S3
    3. Amazon EC2 インスタンスストレージ
    4. Amazon DynamoDB
  9. アプリケーションは、2つの AZ にまたがって配置された Web/アプリケーション サーバーの自動スケーリンググループの前で ELB を使用し、データの永続化のためにマルチ AZ RDS インスタンスを使います。データベース CPU の使用率は 80% を超え、データベース上の I/O 操作の 90% は読み取りです。パフォーマンスを向上させるために、最近、頻繁な DB クエリ結果をキャッシュするために、シングルノード Memcached ElastiCache クラスタを追加しました。次の週には、全体的な作業負荷が 30% 増加すると予想されます。予想される追加の負荷でアプリケーションの高可用性を維持するために、アーキテクチャで何かを変更する必要がありますか?
    1. キャッシュノードに障害が発生した場合、RDS インスタンスは負荷を処理できないため、異なる AZ に2つの Memcached ElastiCache クラスタを展開する必要があります。
    2. キャッシュノードで障害が発生した場合、自動 ElastiCache ノード回復機能によって可用性が影響を受けなくなります。(ノードが失われた場合にデータが失われるため、高可用性は提供されません)
    3. はい 1つのキャッシュノードに障害が発生した場合に負荷を処理するために、RDS DB マスターインスタンスと同じ AZ で2つのノードを持つ Memcached ElastiCache クラスタを展開する必要があります。(シングル AZ は DB がマルチ AZ であるため、可用性に影響を与え、オーバーロードされる AZ はダウンします)
    4. いいえ キャッシュノードに障害が発生しても、可用性に影響を与えることなく、常に同じデータを DB から取得できます。(可用性に影響するデータベースをオーバーロードします)
  10. Web とアプリケーション層を組み合わせた読み取り専用のニュースレポートサイトと、大規模で予測不可能なトラフィック要求を受信するデータベース層は、これらのトラフィックの変動に自動的に対応できる必要があります。これらの要件を満たすためには、どの AWS サービスを使用する必要がありますか。
    1. Web およびアプリケーション層のステートレスインスタンスは、ElastiCache Memcached を使用して、CloudWatch と RDS で監視され、リードレプリカを持つオートスケーリンググループで同期します。
    2. リードレプリカで CloudWatch と RDS で監視されている自動拡張グループの Web 層とアプリケーション層のステートフルインスタンス (ステートフルインスタンスはスケーリングを許可しません)
    3. CloudWatch およびマルチ AZ RDS で監視されているオートスケーリンググループの Web 層およびアプリケーション階層のステートフルインスタンス (ステートフルインスタンスでは、スケーリングとマルチ AZ を使用できないため、高可用性とスケーリングはできません)
    4. CloudWatch およびマルチ AZ RDS で監視されているオートスケーリンググループで ElastiCache Memcached を使用して同期する Web およびアプリケーション層のステートレスインスタンス (マルチ AZ は高可用性とスケーリングではありません)
  11. Elastic Load Blancing サービスを使用して、トラフィックを複数の Web サーバーに広めるアプリケーションを作成しました。ユーザーは、既にログインした後で、アプリケーションを使用している最中に、再度ログオンを余儀なくされることがあります。これは、設計した動作ではありません。この現象を防ぐための解決策は何ですか?
    1. インスタンスメモリを使用してセッション状態を保存します。
    2. インスタンスストレージを使用してセッション状態を保存します。
    3. EBS を使用してセッション状態を保存します。
    4. ElastiCache を使用してセッション状態を保存します。
    5. Glacier を使用してセッションスレートを保存します。

Jayendra’s Blog

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