Q: Amazon ElastiCache とは何ですか?

Amazon ElastiCache は、Memcached または Redis プロトコルに準拠するサーバーノードのデプロイおよび実行をクラウド内で簡単に実行できるウェブサービスです。Amazon ElastiCache は、低速のディスクベースのデータベースに全面的に依存することなく、管理された高速のインメモリシステムからの情報の取得を可能にすることで、ウェブアプリケーションのパフォーマンスを向上させます。このサービスによって、インメモリ環境の管理、監視、操作がシンプルになり、負荷が軽減されるため、エンジニアリングリソースをアプリケーション開発に集中させることができます。Amazon ElastiCache を使用することで、ユーザーアクションやクエリの読み込みと応答の時間を改善でき、さらにウェブアプリケーションの縮小や拡張に関連したコストも削減できます。

Amazon ElastiCache によって、分散されたインメモリキー値環境の操作に必要な、一般的な管理タスクが自動化されます。Amazon ElastiCache を使用すれば、わずか数分でアプリケーションアーキテクチャにキャッシュやインメモリレイヤーを追加できます。AWS マネジメントコンソールで数回クリックするだけです。クラスターのプロビジョニングが完了すると、障害が発生したノードは Amazon ElastiCache によって自動的に検出して置き換えられるため、ウェブサイトやアプリケーションの読み込み速度を低下させるデータベースの過負荷リスクが軽減され、回復力のあるシステムが実現できます。Amazon CloudWatch のモニタリングとの統合により、Amazon ElastiCache ではノードに関連する主要パフォーマンスメトリクスの可視性が強化されます。Amazon ElastiCache は、Memcached と Redis のプロトコルに準拠しているため、既存の Memcached や Redis 環境で現在使用しているコード、アプリケーション、およびよく使用されるツールもシームレスに機能します。Amazon ElastiCache でクラスター化された設定をサポートしているため、最も要求の厳しいアプリケーションのニーズを満たす、高速でスケーラブルな使いやすいマネージド型サービスの利点を活用できます。アマゾン ウェブ サービスのすべてのサービスと同様に、初期投資が不要であり、お支払いいただくのは使用したリソースの分のみです。

Q: メモリ内キャッシュとは何ですか? また、どのようにアプリケーションに役立ちますか?

Amazon ElastiCache が提供するメモリ内キャッシュは、多くの読み取りがヘビーなアプリケーションの作業負荷(ソーシャルネットワーキング、ゲーム、メディア共有、Q&A ポータルなど)や莫大な計算処理を必要とする作業負荷(レコメンデーションエンジンなど)における待ち時間やスループットを改善するために使用することができます。メモリ内キャッシュは、アクセスの待ち時間を短くするためにメモリ内にデータの重要な部分を格納することにより、アプリケーションのパフォーマンスを向上させます。キャッシュされた情報には、I/O 集中型データベースのクエリ結果や計算集中的な計算結果が含まれます。

Q: Amazon ElastiCache をキャッシュ以外の用途に使用できますか?

A: はい。Redis 用 ElastiCache はプライマリのインメモリ型キー値データストアとして使用でき、ミリ秒未満のデータパフォーマンスという高速性、高可用性、さらに最大 16 ノードに加えてそれぞれが 3.55 TiB のインメモリデータに対応した最大 5 つのリードレプリカを使用可能なスケーラビリティを実現できます。リーダーボード、速度制限、キュー、チャットといったその他のユースケースについてはこちらを参照してください。

Q: AWS CloudFormation から Amazon ElastiCache を使用できますか?

AWS CloudFormation は、サービスやアプリケーションをすばやく確実にプロビジョニングするための AWS CloudFormation テンプレートを用意することで、プロビジョニングと管理作業をシンプルにするサービスです。AWS CloudFormation では Amazon ElastiCache が包括的にサポートされており、クラスター (MemCached と Redis の両方) およびレプリケーショングループを作成するためのテンプレートが用意されています。テンプレートは、クラスター化された Redis 設定に関する最新の ElastiCache Redis の発表にあわせて更新されており、お客様が Amazon ElastiCache を簡単かつ柔軟に利用できるようになっています。

Q: Amazon ElastiCache では何が管理されますか?

Amazon ElastiCache は、要求するサーバーリソースのプロビジョニングからソフトウェアのインストールまで、分散されたインメモリ環境の設定に関わる作業を管理します。環境の実行が開始されると、障害検出、復旧、およびソフトウェアのパッチ適用などの一般的な管理タスクがサービスによって自動化されます。Amazon ElastiCache ではノードに対する詳細モニタリングメトリクスが用意されているため、問題の診断と対処を迅速に行えます。例えば、しきい値を設定して、いずれかのノードでリクエストの過負荷が発生した際に、アラームを受け取ることができます。

Q: Amazon ElastiCache のノード、シャード、クラスターとは何ですか?

ノードとは、Amazon ElastiCache をデプロイするときの最小の構成要素です。これは、ネットワークに接続された安全な RAM の固定サイズの断片です。各ノードでは Memcached または Redis プロトコル準拠サービスのインスタンスが実行され、それぞれの DNS 名とポートを持っています。関連付けられているメモリ量の異なる、複数のタイプのノードがサポートされています。Redis シャードは、クラスターのキースペースのサブセットで、プライマリノードおよびゼロ個以上のリードレプリカを含めることができます。Redis デプロイメントの詳細については、下の Redis についてのセクションを参照してください。シャードは、複数集まってクラスターを形成します。

Q: Amazon ElastiCache はどのエンジンをサポートしていますか?

現在、Memcached 用 Amazon ElastiCache は、Memcached 1.4.5、1.4.14、1.4.24、1.4.33、および 1.4.34 をサポートしています。

現在、Redis 用 Amazon ElastiCache では、Redis 2.8.21、2.8.22、2.8.23、2.8.24、および 3.2.4 がサポートされています。

Q: Amazon ElastiCache はどのように開始すればよいのですか?

Amazon ElastiCache にまだサインアップしていない場合は、Amazon ElastiCache 詳細ページの [今すぐサインアップ] ボタンをクリックし、サインアッププロセスを完了していただけます。アマゾン ウェブ サービスのアカウントが必要です。まだお持ちでない場合は、Amazon ElastiCache サインアップ手続きの開始時に画面の指示に従って作成してください。Amazon ElastiCache にサインアップした後、Amazon ElastiCache の資料をご覧ください。ここに入門ガイドが含まれています。

Amazon ElastiCache の使用に慣れれば、AWS マネジメントコンソールまたは Amazon ElastiCache API を使用して、数分以内にクラスターを起動できます。

Q: クラスターを作成するには、どうすればよいですか?

クラスターは、AWS マネジメントコンソール、Amazon ElastiCache API、コマンドラインツールを使用して、簡単に作成できます。AWS マネジメントコンソールを使用してクラスターを作成するには、[Memcached] または [Redis] タブの [Create] ボタンをクリックします。そこからクラスターの識別子、ノードタイプ、およびノードの数を指定すれば、必要なメモリ量のクラスターを作成できます。別の方法として、CreateCacheCluster API または elasticache-create-cache-cluster コマンドを使用してクラスターを作成できます。クラスターを作成時にアベイラビリティーゾーンを指定しなかった場合、メモリ要件と使用可能容量に基づいて AWS が自動的に配置します。

Q: どのようなノードタイプを選択できますか?

Amazon ElastiCache では、以下のメモリタイプのノードがサポートされています。

現行世代のノード:

  • cache.m3.medium: 2.78 GB
  • cache.m3.large: 6.05 GB
  • cache.m3.xlarge: 13.3 GB
  • cache.m3.2xlarge: 27.9 GB
  • cache.m4.large: 6.42 GB
  • cache.m4.xlarge: 14.28 GB
  • cache.m4.2xlarge: 29.7 GB
  • cache.m4.4xlarge: 60.78 GB
  • cache.m4.10xlarge: 154.64 GB
  • cache.r3.large: 13.5 GB
  • cache.r3.xlarge: 28.4 GB
  • cache.r3.2xlarge: 58.2 GB
  • cache.r3.4xlarge: 118 GB
  • cache.r3.8xlarge: 237 GB
  • cache.t2.micro: 555 MB
  • cache.t2.small: 1.55 GB
  • cache.t2.medium: 3.22 GB
 
旧世代のノード:
 
  • cache.m1.small: 1.3 GB
  • cache.m1.medium: 3.35 GB
  • cache.m1.large: 7.1 GB
  • cache.m1.xlarge: 14.6 GB
  • cache.m2.xlarge: 16.7 GB
  • cache.m2.2xlarge: 33.8 GB
  • cache.m2.4xlarge: 68 GB
  • cache.t1.micro: 213 MB
  • cache.c1.xlarge: 6.6 GB

上記の各ノードタイプのメモリは、Amazon ElastiCache システムソフトウェアのオーバーヘッドを考慮したうえで Memcached または Redis で使用可能となるサイズです。クラスター内のメモリ容量の合計は、各シャードで使用できるメモリの整数倍になります。例えば、各 6 GB のシャード 10 個で構成されるクラスターの合計メモリは 60 GB になります。

Q: ノードにはどのようにアクセスするのですか?

クラスターが利用可能になったら、以下の手順に従って AWS マネジメントコンソールでノードエンドポイントを取得できます。

  • [Amazon ElastiCache] タブに移動します。
  • [ノード(の数)] リンクをクリックし、[ノード] タブに移動します。
  • [ノードのエンドポイントをコピー] ボタンをクリックします。

または、DescribeCacheClusters API を使用して、エンドポイントのリストを取得できます。

このエンドポイントのリストを使用して、Memcached または Redis クライアントを設定し、好みのプログラミング言語を使用して、ElastiCache ノードのデータの追加または削除を行うことができます。ノードへのネットワークリクエストを許可するため、アクセスを認可する必要があります。利用開始に関する詳細な説明については、当社の入門ガイドをご参照ください。

Q: メンテナンスウィンドウとは何ですか?ソフトウェアメンテナンス中にノードを利用できますか?

Amazon ElastiCache のメンテナンスウィンドウは、要求または必要とされるイベントで、ソフトウェアのパッチ適用が発生した際に、それをコントロールする機会として考えることができます。「メンテナンス」イベントが特定の週に予定されている場合、お客様が特定した60分のメンテナンスウィンドウ中の一定の時点で、開始されて完了します。

ソフトウェアのパッチ適用が予定されている場合、メンテナンスウィンドウの間、ノードに多少のダウンタイムが発生する可能性があります。詳細については、「エンジンのバージョン管理」を参照してください。パッチ適用は、ユーザーからリクエストすることができます。例えば、キャッシュソフトウェアのアップグレード、または必要に応じてそう判断した場合(システムまたはキャッシングソフトウェアにセキュリティ上の脆弱性を当社が識別した場合)。このようなパッチ適用は頻繁に発生するものではありません(通常数ヵ月に一度です)。また、お客様のメンテナンスウィンドウのごく一部以外を使用する必要があることは稀なはずです。クラスターの作成時に、希望する週間メンテナンスウィンドウを指定しない場合、デフォルト値である 60 分が割り当てられます。メンテナンスの実行時期を自分で変更する場合、AWS マネジメントコンソールで DB インスタンスを変更するか、または ModifyCacheCluster API を使用して変更できます。各クラスターに個別のメンテナンスウィンドウを選択できます。


Q: Amazon ElastiCache の使用に対してどのように課金と請求が行われるのですか?

お客様が使用した分にのみお支払いいただきます。最低料金はありません。料金はノードタイプごとに消費されたノード時間単位となります。1時間未満のノード時間は1時間分として請求されます。同じアベイラビリティーゾーン内での Amazon EC2 と Amazon ElastiCache の間のデータ転送は無料です。同一リージョンの異なる Availability Zone にある Amazon EC2 インスタンスと Amazon ElastiCache ノード間でデータを転送する場合、標準の Amazon EC2 リージョンデータ転送料金が適用されますが、Amazon EC2 インスタンスについては、データ着信または発信に対してのみ課金されます。Amazon ElastiCache ノードそのものに対して発信または着信するトラフィックに対しては、Amazon ElastiCache データ転送料金が発生することはありません。詳細については、料金表のページをご覧ください。

Q: Amazon ElastiCache ノードの使用に対する請求期間はいつ始まっていつ終わるのですか?

ノードが使用可能になった時点で、ノードの課金が始まります。課金はノードが終了されるまで継続します。ノードは、削除された時点で終了します。

Q: 請求可能な ElastiCache ノード時間はどのように定義されるのですか?

ノード時間は、[使用可能] 状態でノードが動作しているすべての時間に対して課金が発生します。ノードの課金を停止するには、ノードを終了させる必要があります。それ以降は、ノード時間に対する課金は行われません。

Q: 料金は税込み価格ですか?

別途記載がない限り、表示される料金には VAT、売上税その他取引に対して適用される一切の税金等および関税は含まれません。日本の居住者であるお客様が AWS サービスをご利用になった場合には、料金とあわせて別途消費税をご請求させていただきます。詳細はこちらをご覧ください


Q: Amazon ElastiCache のリザーブドノードとは何ですか?

リザーブドノードを使うと、事前に予約金をお支払いいただくことで、1 年または 3 年の予約を作成し、自分のノードを特定のリージョンで実行して、時間あたりの利用料金請求に対して大幅な割り引きを受けることができます。リザーブドノードには 3 つのタイプ (軽度使用、中度使用、重度使用リザーブドノード) があるため、前払い金額と実際の時間あたり価格とのバランスを取ることができます。

Q: リザーブドノードとオンデマンドノードはどのように違いますか?

リザーブドノードとオンデマンドノードは、機能的にはまったく同じです。唯一異なる点は、ノードに対する請求方法です。リザーブドノードでは前払い一括で支払い、契約期間中の課金レートが低価格になります (オンデマンドキャッシュノードと比較した場合)。

Q: リザーブドノードを購入して作成するには、どうすればよいですか?

AWS マネジメントコンソールの [Purchase Reserved Nodes] オプションを使用できます。別の方法として API ツールを使用できます。DescribeReservedCacheNodesOfferings API メソッドで購入可能な予約を一覧表示し、PurchaseReservedCacheNodesOffering メソッドを呼び出してキャッシュノードの予約を購入できます。

リザーブドノードの作成とオンデマンドノードの起動方法に違いはありません。予約するノードクラスとリージョンを指定するだけです。予約の購入が完了すると、Amazon ElastiCache によって割り引きされた価格レートが新しいノードに適用されます。

Q: 常に購入可能な予約がありますか?

はい。リザーブドノードは、アベイラビリティーゾーンではなくリージョンに対して購入します。つまり、1 つのアベイラビリティーゾーンの容量に限界があったとしても、そのリージョンで予約を購入することができ、そのリージョン内の異なるアベイラビリティーゾーンで使用できます。

Q: リザーブドキャッシュはいくつ購入できますか?

リザーブドノードは最大 20 個まで購入できます。20 個を超えるノードの実行を希望される場合は、Amazon ElastiCache ノード申請フォームにご記入ください。

Q: 既存のノードをリザーブドノードに変換したい場合はどうすればよいですか?

現在実行中のノードと同じリージョン内で、同じノードクラスのノードの予約を購入します。予約の購入が完了すると、Amazon ElastiCache により既存のノードに新しい時間単位の利用料金が自動的に適用されます。

Q: リザーブドノードにサインアップした場合、期間はいつから開始されますか? ノードの使用期限が過ぎるとどうなりますか?

支払い認証の処理中にお客様からのリクエストが受領されると、リザーブドノードに関連する価格変更が有効になります。AWS アカウントアクティビティページまたは DescribeReservedCacheNodes API を使って予約の状態を確認できます。次の請求期間に一括払いが承認されない場合は、割引料金が適用されません。

予約期限が過ぎると、リザーブドノードから、そのノードクラスとリージョンに該当するオンデマンド時間料金に戻ります。

Q: どのノードにリザーブドノードの料金を適用するかをコントロールするには、どうすればよいですか?

ノードの作成、変更、削除を行う Amazon ElastiCache API ではオンデマンドノードとリザーブドノードが区別されないため、両方をシームレスに使用できます。お客様への請求額の計算時に、予約購入状態に応じて、該当するすべてのノードにリザーブドキャッシュノードの低額の時間料金が自動適用されます。

Q: リザーブドノードを別のリージョンまたはアベイラビリティーゾーンに移動できますか?

各リザーブドノードは、特定のリージョンに関連付けられています。これはリザーブドノードの存続期間中固定されており、変更できません。ただし、それぞれの予約は、そのリージョン内のどのアベイラビリティーゾーンでも使用できます。

Q: 予約はキャンセルできますか?

リザーブドノードの予約金は、返金不能です。ただし、ノードはいつでも終了できます。軽度使用または中度使用リザーブドノードをご利用の場合、その時点で時間課金が停止します。


Q: Amazon ElastiCache へのアクセスはどのようにコントロールできますか?

VPC を使用していない場合、Amazon ElastiCache では、キャッシュセキュリティグループを介して、クラスターへのアクセスをコントロールできます。セキュリティグループは、クラスターへのネットワークアクセスをコントロールするファイアウォールのように動作します。デフォルトでは、クラスターへのネットワークアクセスは無効になっています。アプリケーションからクラスターにアクセスできるようにするには、特定の EC2 セキュリティグループのホストからのアクセスを明示的に有効にする必要があります。このプロセスは、イングレスと呼ばれています。

クラスターにネットワークアクセスさせるためには、セキュリティグループを作成し、希望の (許可されている EC2 インスタンスを指定する) EC2 セキュリティグループをそれにリンクします。作成時または AWS マネジメントコンソールの [変更] オプション使用時には、セキュリティグループをクラスターに関連付けることができます。

現時点ではクラスターに IP 範囲ベースのアクセスコントロールを有効化することはできない点にご注意ください。クラスターへのクライアントはすべて EC2 ネットワーク内に存在する必要があり、上述のようにセキュリティグループを介して認可されていることが必要です。

VPC を使用している場合、詳細については、こちらを参照してください。

Q: 自社のデータセンターで実行されているプログラムから Amazon ElastiCache にアクセスできますか?

いいえ。現在、ElastiCache クラスタへのすべてのクライアントは、Amazon EC2 ネットワーク内にある必要があり、ここで説明するセキュリティグループを介して認可されていなければなりません。

Q: VPC 内の EC2 インスタンスで実行されているプログラムから Amazon ElastiCache にアクセスできますか?

はい。ElastiCache クラスターを VPC 内に作成した場合は、VPC 内の EC2 インスタンスは Amazon ElastiCache にアクセスできます。VPC 内に Amazon ElastiCache クラスターを作成する方法の詳細については、こちらを参照してください。

Q: Amazon Virtual Private Cloud (VPC) とは何ですか? Amazon ElastiCache と一緒に使用する理由は何ですか?

Amazon VPC を使用すると、Amazon Web Services(AWS)クラウドの非公開の隔離されたセクションに仮想ネットワーキング環境を作成できます。この環境では、プライベート IP アドレスの範囲、サブネット、ルーティングテーブル、ネットワークゲートウェイなど、さまざまな点を完全にコントロールして演習できます。Amazon VPC では、仮想ネットワークトポロジを定義し、従来の IP ネットワークと同じようにネットワーク設定をカスタマイズできるため、独自のデータセンターで運用できます。

VPC で Amazon ElastiCache を使用する事例の 1 つとして、パブリックに公開されているウェブアプリケーションを実行し、同時にプライベートサブネットではパブリックからアクセスできないバックエンドサーバーを保守する場合があります。インターネットにアクセスできるウェブサーバー用にパブリック側のサブネットを作成し、インターネットアクセスできないプライベート側のサブネットにバックエンドインフラストラクチャを配置できます。バックエンドインフラストラクチャには、RDS DB インスタンスと、インメモリレイヤーを提供する Amazon ElastiCache クラスターを含めることができます。Amazon VPC の詳細については、Amazon Virtual Private Cloud ユーザーガイドを参照してください。

Q: Amazon ElastiCache クラスターを VPC 内に作成するには、どうすればよいですか?

VPC 内で Amazon ElastiCache クラスターを作成する手順については、『Amazon ElastiCache User Guide』を参照してください。

VPC 内にクラスターを作成するための前提条件を次に示します。

  • 少なくとも 1 つのサブネットで VPC をセットアップする必要があります。Amazon VPC およびサブネット作成の詳細については、「Amazon Virtual Private Cloud 入門ガイド」を参照してください。
  • VPC 用にサブネットグループを定義する必要があります。
  • VPC 用に VPC セキュリティグループを定義する必要があります(デフォルトで定義されているグループを使用することもできます)。
  • また、各サブネットには適度な大きさの CIDR ブロックを割り当てて、キャッシュノード交換などの保守作業で使用できる Amazon ElastiCache 用の予備の IP アドレスを確保するようにします。

Q: Amazon ElastiCache クラスターを既存の VPC 内に作成するには、どうすればよいですか?

既存の VPC で Amazon ElastiCache クラスターを作成する方法は、新しく作成した VPC に対してクラスターを作成する方法と同じです。詳細については、こちらを参照してください。

Q: VPC 内の ElastiCache ノードに接続するには、どうすればよいですか?

VPC 内にデプロイした Amazon ElastiCache ノードは、同じ VPC にデプロイされた EC2 インスタンスからアクセスできます。Elastic IP が関連付けられたパブリックサブネット内にこのような EC2 インスタンスをデプロイしている場合は、インターネットを介して EC2 インスタンスにアクセスできます。

インターネットから、または VPC の外部にある EC2 インスタンスから VPC にデプロイされた Amazon ElastiCache のノードにアクセスするには、こちらのガイドラインを参照してください。

基になる IP アドレスは変わる可能性があるので (キャッシュノード交換などの理由で)、ElastiCache ノードに接続するときは、DNS 名を使用することを強くお勧めします。

Q: サブネットグループとは何ですか? なぜ必要なのですか?

サブネットグループはサブネットのコレクションで、VPC 内の Amazon ElastiCache クラスター用に指定する必要があります。サブネットグループは、Amazon ElastiCache コンソールを使用して作成します。各サブネットグループに少なくとも 1 つのサブネットが必要です。Amazon ElastiCache では、サブネットグループを使用してサブネットを選択します。その後、選択されたサブネットの IP アドレスがノードエンドポイントに関連付けられます。さらに、Amazon ElastiCache によって、ノードの Elastic Network Interface が作成され、前述の IP アドレスによって関連付けられます。

基底となる IP アドレスが変わる可能性があるため (キャッシュノード交換などの理由で)、ノードに接続するときは DNS 名を使用することを強くお勧めします。

Q: ElastiCache クラスターのサブネットグループを変更できますか?

既存のサブネットグループを更新し、既存のアベイラビリティーゾーン用または ElastiCache クラスターの作成後に追加された新しいアベイラビリティーゾーン用にサブネットを追加できます。ただし、現時点では、デプロイされたクラスターのサブネットグループの変更は許可されていません。

Q: VPC 内で Amazon ElastiCache を使用する場合と VPC 外で使用する場合の違いは何ですか?

Amazon ElastiCache の基本機能は、VPC が使用されているかどうかに関係なく変わりありません。Amazon ElastiCache は、ElastiCache クラスターが VPC の内外どちらにあっても自動障害検出、復旧、拡張、自動検出、およびソフトウェア修正プログラムを管理します。

VPC 内における ElastiCache クラスターのノードでは、(定義したサブネット内の) プライベート IP アドレスのみが使用されます。VPC 外での ElastiCache クラスターへのアクセスは、ここで説明されているように、セキュリティグループを使用してコントロールできます。

Q: VPC 外にある既存の ElastiCache クラスターを VPC 内に移動できますか?

いいえ。VPC 外にある既存の Amazon ElastiCache クラスターは VPC に移動できません。VPC に新しい Amazon ElastiCache クラスターを作成する必要があります。

Q: VPC 内にある既存の ElastiCache クラスターを VPC 外に移動できますか?

現在、VPC 内から VPC 外へ ElastiCache クラスターを直接移行する操作はサポートされていません。VPC 外に新しい Amazon ElastiCache クラスターを作成する必要があります。

Q: クラスターへのネットワークアクセスはどのようにしてコントロールできますか?

Amazon ElastiCache では、非 VPC デプロイのセキュリティグループを使用して、クラスターおよびノードへのアクセスをコントロールできます。セキュリティグループは、ノードへのネットワークアクセスをコントロールするファイアウォールのように動作します。デフォルトでは、ノードへのネットワークアクセスは無効になっています。アプリケーションからノードにアクセスできるようにするには、特定の EC2 セキュリティグループまたは IP 範囲の EC2 インスタンスからのアクセスを許可するよう、セキュリティグループを設定します。このプロセスは、イングレスと呼ばれています。セキュリティグループに対してイングレスが設定されると、同じルールがそのセキュリティグループに関連するすべてのノードに適用されます。セキュリティグループを設定するには、Amazon ElastiCache コンソールの [Security Groups] セクションまたは Amazon ElastiCache API を使用します。

VPC デプロイでは、ノードへのアクセスが、VPC セキュリティグループとサブネットグループを使用してコントロールされます。VPC セキュリティグループは、VPC におけるセキュリティグループに相当します。

Q: VPC 内の ElastiCache ノードに確実にアプリケーションからアクセスできるようにするには、どのような点に注意すればよいですか?

ルーティングテーブルと VPC 内のネットワーキング ACL を変更して、VPC 内のクライアントインスタンスから ElastiCache ノードに到達できるようにする必要があります。詳細については、Amazon ElastiCache のドキュメントをご覧ください。

Q: セキュリティグループを使用して、VPC の一部であるクラスターを設定できますか?

いいえ。VPC での操作では、セキュリティグループは使用されません。セキュリティグループは、非 VPC 設定で使用されます。VPC でクラスターを作成するときは、VPC セキュリティグループを使用する必要があります。

Q: 通常の EC2 セキュリティグループを、VPC 内で起動されたクラスターに関連付けることはできますか?

いいえ。クラスターと同じ VPC に含まれる VPC セキュリティグループのみを関連付けることができます。

Q: 1 つの ElastiCache クラスターのノードを複数のサブネットに分散させることはできますか?

はい。Amazon ElastiCache クラスターのノードは複数のサブネットに分散させることができます。ただし、これらのサブネットが、作成時に ElastiCache クラスターに関連付けられたサブネットグループに含まれている必要があります。


Q: パラメータグループとは何ですか? それらはどのように役立ちますか?

パラメータグループは、1 つ以上のクラスターに適用可能なエンジン設定値の「コンテナ」として機能します。パラメータのグループを指定せずにクラスターを作成する場合、デフォルトのパラメータグループが使用されます。このデフォルトのグループには、実行中のクラスターに最適化されたエンジンデフォルト値と Amazon ElastiCache システムデフォルト値が含まれています。カスタム指定したエンジン設定値でクラスターを実行する場合は、単純に新しいパラメータグループを作成し、必要なパラメータを修正し、新しいパラメータグループを使用するようクラスターを修正します。関連付けが行われると、あるパラメータグループを使用するすべてのクラスターで、そのパラメータグループに対するすべてのパラメータアップデートが実行されます。パラメータグループの設定の詳細については、「Amazon ElastiCache ユーザーガイド」を参照してください。

Q: どうすればクラスターの適切な設定パラメータを選択できますか?

Amazon ElastiCache は、ノードタイプのメモリ/コンピューティングリソースの容量を考慮し、デフォルトでクラスターに最適な設定パラメータが選択されます。しかし、それらを変更したい場合には、当社の設定管理 API を使用します。推奨値からの設定パラメータの変更は、性能の低下からシステムクラッシュまで、予期しない影響を生じる場合があり、これらのリスクを想定した高度なユーザーのみが行うべきであることにご注意ください。パラメータ変更に関する詳細については、Amazon ElastiCache ユーザーガイドをご参照ください。

Q: 指定されたパラメータグループの現在のパラメータ設定はどのようにして確認できますか?

AWS マネジメントコンソール、Amazon ElastiCache API、コマンドラインツールを使用して、パラメータグループおよび対応するパラメータ設定についての情報を確認できます。


Q: Memcached 用 Amazon ElastiCache を使って何をキャッシュすることができますか?

永続データストアのコンテンツ (Amazon RDS、DynamoDB、または EC2 でホストされている自己管理型データベースなど) から、動的に生成されたウェブページ (例えば Nginx で) や永続的な保存を必要としない一時的なセッションデータに至るまで、サービスを使用して様々なオブジェクトをキャッシュすることができます。また、高周波カウンタを実装して、容量の大きいウェブアプリケーションにおける管理コントロールをデプロイするために使用することもできます。

Q: Amazon RDS や Amazon DynamoDB といった AWS の永続データストアで Memcached 用 Amazon ElastiCache を使用することはできますか?

はい。Amazon ElastiCache では非常に高いリクエスト率や低レイテンシーを必要とするアプリケーション向けに高性能の中間層を提供するため、Amazon RDS や Amazon DynamoDB といったデータストアのフロントエンドに最適です。

Q: 今、Memcached を使用しています。Amazon ElastiCache に移行するには、どうすればよいですか?

Amazon ElastiCache は、Memcached のプロトコルに準拠しています。したがって、既存の Memcached のデプロイの場合とまったく同じ方法で、get、set、incr、decr のような標準的な Memcached 操作を使用することができます。Amazon ElastiCache は、テキストとバイナリ両方のプロトコルをサポートしています。また、CloudWatch 経由でグラフとして見ることができる標準的な統計結果のほとんどをサポートしています。そのため、アプリケーションを再コンパイルまたは再リンクせずに Amazon ElastiCache の使用に切り替えることができます。使用しているライブラリはそのまま機能します。アプリケーションがアクセスするキャッシュサーバーを設定するには、アプリケーションの Memcached 設定ファイルを更新し、AWS によりプロビジョニングされたサーバー (ノード) のエンドポイントを含めます。AWS Management Console の [ノードのエンドポイントをコピー] オプションを単に使用するか、または [DescribeCacheClusters] API を使用して、エンドポイントのリストを取得することができます。どの移行プロセスもそうであるように、現在のソリューションから完全に切り替える前に新しい Amazon ElastiCache デプロイメントを徹底的にテストすることをお勧めします。

Amazon ElastiCache は現在、Amazon EC2 ネットワークのみからのアクセスが許可されているため、サービスをご利用いただくには、Amazon EC2 にアプリケーションサーバーを持っている必要があることにご注意ください。

Amazon ElastiCache は DNS エントリを使用して、クライアントアプリケーションがサーバー (ノード) を見つけられるようにします。ノードの DNS 名は一定のままですが、ノードの IP アドレスは、非 VPC インストールの障害発生後にノードが自動的に置き換えられた場合など、時間の経過とともに変わる可能性があります。ノードの障害への対処方法の推奨事項については、よくある質問を参照してください。


Q: 自分のアプリケーションに適したノードタイプをどのように選択できますか?

この質問に対する決まった答えはありませんが、Amazon ElastiCache ではノードの追加や削除が後から簡単に行えるため、ノード数が最適かどうか心配する必要はありません。初期設定を選択するときには、相互に関連した以下の 2 つの側面を考慮できます。

  • 目標のキャッシュヒット率を達成するために、データに必要なメモリ合計。
  • ノードの障害時に、データベースバックエンドに過負荷をかけることなく、許容できるアプリケーションパフォーマンスを維持するために必要なノード数。

必要なメモリの量は、データセットのサイズおよびアプリケーションのアクセスパターンにより異なります。耐障害性を強化させるため、必要なメモリの合計が大まかに分かったら、1~2 個のノードが損失してもアプリケーションが動作を続けられる数のノードにそのメモリを分割します。例えば、メモリ要件が 13 GB の場合、cache.m4.xlarge ノード 4 つではなく、cache.m1.large ノード 2 つを使用するほうがよいかもしれません。1 つ以上のノードの災害復旧中にキャッシュヒット率が一時的に下がった場合でも、データベースなどの他のシステムが過負荷にならないようにすることが重要です。詳細については、Amazon ElastiCache ユーザーガイドを参照してください。

Q: 1 つのクラスターが複数のアベイラビリティーゾーンにまたがることは可能ですか?

はい。クラスターを作成するとき、または既存のクラスターにノードを追加するとき、新しいノードのアベイラビリティーゾーンを選択できます。各アベイラビリティーゾーンでリクエストされるノード数を指定することも、「ゾーン全体にノードを分散」するように選択することもできます。クラスターが VPC にある場合、ノードは選択されたキャッシュサブネットグループの一部であるアベイラビリティーゾーンにしか配置できません。詳細については、ElastiCache VPC ドキュメントを参照してください。

Q: Amazon ElastiCache の Memcached では、1 リージョンあたりいくつのノードを実行できますか?

1 リージョンあたり最大 100 のノードを実行できます。さらにノードが必要な場合は、「ElastiCache 制限増加申請フォーム」にご記入ください。

Q: Amazon ElastiCache は、ノードの障害にどのように対応しますか?

このサービスではノードの障害が検出され、自動的に以下のような手順で対応します。

  • Amazon ElastiCache のノード修復では、新しいサービスのリソースが取得された後、ノードの既存の DNS 名がそのリソースに向けてリダイレクトされます。VPC インストールの場合、ノードが障害から復帰すると、ElastiCache はノードの DNS 名と IP アドレスの両方が同じままになるようにします。非 VPC インストールの場合、ElastiCache はノードの DNS 名が変わらないようにします。ただし、ベースとなるノードの IP アドレスは変わる場合があります。
  • クラスターに SNS トピックを関連付けている場合、新しいノードが設定され使用準備が完了した時点で、Amazon ElastiCache により SNS 通知が送信され、そのノードの復旧が発生したことを知らせます。これにより、オプションとして、Memcached クライアントライブラリに修復されたノードへの再接続試行を強制させるよう、アプリケーションを調整できます。一部の Memcached ライブラリでは、サーバーとの通信エラーまたはタイムアウトの発生時に、そのサーバー (ノード) の使用が無期限停止されるため、このことが重要になります。

Q: アプリケーションをサポートするために、より大容量のメモリが必要になった場合、Amazon ElastiCache の総メモリ量を増やすにはどうすればよいですか?

AWS マネジメントコンソールでキャッシュクラスターの [Nodes] タブにある [Add Node] オプションを使用するか、ModifyCacheCluster API を呼び出すことによって、既存の Memcached クラスターにノードを追加できます。


Q: Amazon ElastiCache は他のアマゾン ウェブ サービスとどのように相互作用しますか?

Amazon ElastiCache では、長期的なデータの耐久性を提供しながら、高性能アプリケーションでの非常に短いレイテンシーを実現し、要求ボリュームの負荷の一部を軽減できるため、Amazon RDS や Amazon DynamoDB といったアマゾン ウェブ サービスのフロントエンドとして理想的です。このサービスは、Amazon EC2 や EMR と組み合わせて、アプリケーションのパフォーマンスを向上させるために使用することもできます。

Q: Amazon ElastiCache は、特定のプログラミング言語に、より適していますか?

Memcached クライアントライブラリは、すべてではなくても、多くの一般的なプログラミング言語でご利用いただけます。Memcached クライアントの詳細については、こちらをご覧ください。Amazon ElastiCache を使用している際に、特定の Memcached クライアントで何らかの問題が発生した場合は、Amazon ElastiCache コミュニティフォーラム経由で、当社までお知らせください。

Q: 人気の Memcached ライブラリで、Amazon ElastiCache と互換性があるのはどれですか?

Amazon ElastiCache は特定のクライアントライブラリを必要とせず、再コンパイルまたはアプリケーションの再リンクをすることなく、既存の Memcached クライアントライブラリで機能します(Memcached 1.4.5 以降)。例として、それに基づいた libMemcached(C)とライブラリ(例えば PHP、Perl、Python)、spyMemcached(Java)、および fauna(Ruby)が挙げられます。


Q: 自動検出とはどのような機能で、これを使用すると何ができるのですか?

自動検出とは、開発に必要な時間と労力を削減すると同時に、開発されるアプリケーションの複雑さを緩和する機能です。自動検出を利用すると、Amazon ElastiCache クラスターのキャッシュノードが追加または削除されたことを、クライアントが自動的に検出できるようになります。これまでは、クラスターのメンバーシップが変化したときに、開発者が手動でキャッシュノードエンドポイントのリストを更新しなければなりませんでした。クライアントアプリケーションのアーキテクチャによっては、クライアント初期化が必要になり、このときにアプリケーションがシャットダウンされて再起動されるので、ダウンタイムが発生します。自動検出によって、このような複雑さが解消されます。Amazon ElastiCache は、Memcached プロトコルとの下位互換性に加えて、自動検出により、クライアントにキャッシュクラスターのメンバーシップ情報を与えます。この追加情報を処理する能力を持つクライアントは、クライアント自体を再設定すれば、初期化しなくても Amazon ElastiCache クラスターの最新のノードを使用できるようになります。

Q: 自動検出はどのように動作しますか?

Amazon ElastiCache クラスターを作成したときに指定したノードのアドレスは、名前付きエンドポイントを介して指定することができます。自動検出によって、Amazon ElastiCache クラスターには一意の「設定エンドポイント」も付与されます。これは 1 つの DNS レコードであり、クラスターの存続期間が終了するまで有効です。この DNS レコードには、クラスターに属するノードの DNS 名が記録されています。この設定エンドポイントは、このような「ターゲット」ノードを常に 1 つ以上指すことが Amazon ElastiCache によって保証されます。ターゲットノードへのクエリを実行すると、該当するクラスターのすべてのノードに対応するエンドポイントが返されます。この後は、クラスターノードに以前と同様の方法で接続して、Memcached プロトコルのコマンド (get、set、incr、decr など) を実行できます。詳細については、こちらを参照してください。自動検出機能を使用するには、自動検出対応クライアントが必要です。Java および PHP の自動検出クライアントを、Amazon ElastiCache コンソールからダウンロードできます。初期化時に、クライアントでは、設定エンドポイントを使用して Amazon ElastiCache クラスターの最新のメンバーが自動的に特定されます。キャッシュクラスターのノードが追加または削除されたときや、特定のノードに障害が発生して交換されたときも、自動検出クライアントは自動的にその変更を特定するので、クライアントを手動で初期化する必要はありません。

Q: 自動検出の使用を開始するには、どうすればよいですか?

使用を開始するには、Amazon ElastiCache コンソールの [Download ElastiCache Cluster Client] をクリックして Amazon ElastiCache クラスタークライアントをダウンロードします。ダウンロードするには、Amazon ElastiCache アカウントが必要です。まだお持ちでない場合は、Amazon ElastiCache 詳細ページからサインアップしてください。クライアントをダウンロードしたら、Amazon ElastiCache クラスターのセットアップとアクティブ化を開始します。開始するには、Amazon ElastiCache コンソールにアクセスしてください。詳細については、こちらをご覧ください。

Q: 独自の Memcached クライアントを ElastiCache クラスターと一緒に引き続き使用する場合も、この機能を利用できますか?

いいえ。自動検出は、既存の Memcached クライアントでは利用できません。自動検出を使用するには、クライアントが設定エンドポイントを使用できることと、クラスターノードエンドポイントを特定できることが必要です。Amazon ElastiCache クラスタークライアントを使用することも、自動検出のコマンドセットを追加して既存の Memcached クライアントを拡張することもできます。

Q: 自動検出を使用するためのハードウェアとソフトウェアの最低要件を教えてください。

自動検出を利用するには、自動検出対応クライアントを使用して Amazon ElastiCache クラスターに接続する必要があります。Amazon ElastiCache では現在、Java と PHP の両方の自動検出対応クライアントがサポートされています。これらは、Amazon ElastiCache コンソールからダウンロードできます。他の言語でクライアントを作成するには、一般的に使用されている Memcached クライアントで構築してください。

Q: 自動検出がサポートされるようにするには、独自の Memcached クライアントをどのように変更または記述すればよいですか?

任意の Memcached クライアントライブラリを利用して、自動検出のサポートを追加できます。独自のクライアントを追加または削除して自動検出を有効にする方法については、自動検出コマンドセットのドキュメントを参照してください。

Q: 自動検出が不要ならば、既存の Memcached クライアントの使用を続けてもかまいませんか?

はい。Amazon ElastiCache は引き続き Memcached プロトコル準拠であるため、開発したクライアントの変更は不要です。ただし、自動検出を利用するには、Memcached クライアントの機能を拡張する必要があります。Amazon ElastiCache クラスタークライアントを使用しない場合は、独自開発したクライアントを引き続き使用することも、独自のクライアントライブラリが自動検出コマンドセットを解釈できるように修正することもできます。

Q: 自動検出を使用するときに、クライアントの種類が混在していてもかまいませんか?

はい。同じ Amazon ElastiCache クラスターに、自動検出対応クライアントと従来の Memcached クライアントが同時に接続することができます。Amazon ElastiCache は引き続き、100% Memcached 準拠です。

Q: 自動検出の使用を停止できますか?

はい。自動検出の使用を停止するのは、いつでもできます。自動検出を無効にするには、Amazon ElastiCache クラスタークライアントの初期化時に動作モードを指定します。また、Amazon ElastiCache では引き続き Memcached が 100% サポートされるので、任意の Memcached プロトコル準拠クライアントを以前と同様に使用できます。


Q: Amazon ElastiCache クラスターを駆動しているエンジンのバージョンを、サポートされる新しいバージョンにアップグレードするかどうか、およびいつアップグレードするかをコントロールできますか?

Amazon ElastiCache では、クラスターを駆動している Memcached のプロトコル準拠ソフトウェアを Amazon ElastiCache でサポートされている新しいバージョンにアップグレードするかどうか、およびアップグレードの時期をコントロールできます。したがって、お客様は特定の Memcached バージョンとの互換性を維持することや、新しいバージョンをアプリケーションでテストしてから本番環境にデプロイすることや、独自の条件とタイムラインでバージョンのアップグレードを実行することが自由にできます。バージョンアップグレードには互換性のリスクが伴います。したがって、自動的には行われません。お客様ご自身の責任で実施してください。ソフトウェアへのパッチ適用では、バージョンアップグレードの決定権がお客様にあると同時に、Amazon ElastiCache へのパッチ適用作業の負荷が軽減されています。バージョン管理の詳細については、この後のよくある質問をご覧ください。または、Amazon ElastiCache ユーザーガイドをご参照ください。エンジンバージョン管理機能では、パッチ適用を可能な限りお客様側で管理できるようになっていますが、システムやキャッシュソフトウェアに重大なセキュリティの脆弱性があると当社が判断した場合には、お客様に代わって当社がクラスターにパッチを適用する可能性があります。

Q: サポートされているどの Memcached バージョンでクラスターを実行するかは、どのように指定できますか?

新しいクラスターを作成する際には、現在サポートされているどのバージョンでも (マイナーやメジャー) でも指定できます。サポートされているエンジンバージョンリリースにアップグレードする場合、クラスターで [Modify] オプションを使用します。[Cache Engine Version] フィールドで、アップグレード先のバージョンを指定してください。アップグレードは、即時に実行される ([Applied Immediately] オプションがチェックされている場合) か、または次に予定されているそのクラスターのメンテナンスウィンドウに実行されます。

Q: アップグレード前に、新しいバージョンで自分のクラスターをテストできますか?

はい。これを実行するには、新しいエンジンバージョンを指定して新しいクラスターを作成します。開発/ステージングアプリケーションをこのクラスターに指定し、テストしてから、元のクラスターをアップグレードするかどうか決めることができます。

Q: Amazon ElastiCache は、新しい Memcached バージョンのサポートおよび/または現在サポートされている Memcached バージョンの廃止に関するガイドラインを提供しますか?

今後、当社では、Amazon ElastiCache に対してさらに多くの Memcached バージョンを、メジャーとマイナーの両方ともサポートする予定です。毎年サポートされる新しいバージョンリリースの数は、Memcached バージョンリリースの頻度とコンテンツ、および AWS のエンジニアリングチームによるリリースの徹底的な診断結果により異なります。ただし、一般的なガイダンスとして、AWS では、一般公開リリースの 3~5 か月以内に新しい Memcached バージョンをサポートできるよう取り組んでいます。

Q: Amazon ElastiCache では、どのバージョンの Memcached ワイヤプロトコルがサポートされていますか?

Amazon ElastiCache では、Memcached のバージョン 1.4.5、1.4.14、1.4.24、1.4.33、および 1.4.34 の Memcached テキストとバイナリプロトコルがサポートされています。

Q: 最新の Memcached バージョンにアップグレードするにはどうすればよいですか?

Modify プロセスによって、既存の Memcached クラスターをアップグレードできます。古いバージョンの Memcached から Memcached バージョン 1.4.33 以降にアップグレードする際には、既存のパラメータ max_chunk_size の値が slab_chunk_max パラメータに必要な条件を満たしていることを確認してください。アップグレードの前提条件をこちらで確認してください。


Q: Redis 用 Amazon ElastiCache とは何ですか?

Redis 用 Amazon ElastiCache は、Redis プロトコルに準拠するサーバーノードのデプロイおよび実行をクラウド内で簡単に実行できるウェブサービスです。このサービスを使用すると、Redis ノードの管理、モニタリング、および操作を行うことができます。また、ノードの作成、削除、および変更は、ElastiCache コンソール、コマンドラインインターフェイス、またはウェブサービス API を使用して実行できます。Redis 用 Amazon ElastiCache は、Redis のマスター/スレーブレプリケーションをサポートしています。

Q: Redis 用 Amazon ElastiCache はオープンソースの Redis プロトコルに準拠していますか?

はい。Redis 用 Amazon ElastiCache はオープンソースの Redis プロトコルに準拠しています。お客様が既存のスタンドアロン Redis データストアで現在使用しているコード、アプリケーション、ドライバ、およびツールは、Redis 用 ElastiCache でも利用できます。既存の Redis デプロイを Redis 用 ElastiCache に移行する場合、特記がない限り、コードを変更する必要はありません。現在、Redis 2.8.21、2.8.22、2.8.23、2.8.24、3.2.4 がサポートされています。

Q: Redis 用 Amazon ElastiCache のノードとシャードとは何ですか?

Redis 用 ElastiCache のノードは、Redis 用 ElastiCache をデプロイするときの最小の構成要素です。各ノードは Amazon によって強化された Redis プロトコルに対応しており、独自のエンドポイントとポートを持っています。複数のタイプのノードがサポートされており、CPU の処理能力およびメモリ容量がそれぞれ異なっています。

シャードは、論理キースペースのパーティションを担当する 1 つ以上のノードの集合です。シャード内のノードは、独立して存在する場合も、他のノードとのプライマリ/レプリカ関係を持っている場合もあります。シャード内に複数のノードが存在する場合、そのうちの 1 つが読み取り/書き込みのプライマリロールを担当し、その他のノードすべては読み取り専用のレプリカロールになります。

Q: Redis 用 Amazon ElastiCache は Redis の持続性をサポートしていますか?

はい。バックアップと復元機能を使用して Redis データのスナップショットを作成することで、持続性を達成できます。詳細については、こちらをご覧ください。

Q: Memcached 用 Amazon ElastiCache から Redis 用 Amazon ElastiCache へ、またはその逆方向への移行はどのようにすればよいですか?

Memcached から Redis、またはその逆方向への自動移行は、現在サポートしておりません。ただし、Memcached クライアントを使用して Memcached クラスターから読み込み、Redis クライアントを使用して Redis クラスターに書き込むことができます。同様に、Redis クライアントを使用して Redis クラスターから読み込み、Memcached クライアントを使用して Memcached クラスターに書き込むことができます。この場合、2 つのエンジンのデータ形式とクラスター設定の違いについて注意してください。

Q: Redis 用 Amazon ElastiCache はマルチアベイラビリティーゾーン操作をサポートしていますか?

はい。Redis 用 Amazon ElastiCache では、別の AWS アベイラビリティーゾーンにリードレプリカを作成できます。プライマリノードに障害が発生すると、Amazon は新しいプライマリノードをプロビジョニングします。プライマリノードをプロビジョニングできない状況の場合は、新しいプライマリに昇格するリードレプリカを決定します。ノードの障害を処理する方法については、こちらをご覧ください。

Q: ノードに障害が発生した場合、Redis 用 Amazon ElastiCache にはどのようなオプションがありますか?

Redis 用 Amazon ElastiCache でノードを修復するには、新しいサービスのリソースを獲得してから、新しいサービスのリソースを示すようにそのノードの既存の DNS 名をリダイレクトします。したがって、Redis ノードの DNS 名は一定のままですが、Redis ノードの IP アドレスは時間の経過とともに変わる可能性があります。1 つ以上のリードレプリカとマルチ AZ を持つレプリケーショングループが有効になっている場合、プライマリノードに障害が発生すると、ElastiCache が自動的に障害を検出し、レプリカを選択して、新しいプライマリに昇格させます。また、DNS の変更が伝達されるため、プライマリエンドポイントを使用し続けることができ、新しく昇格されたプライマリレプリカを示すことができます。詳細については、このページのマルチ AZ セクションを参照してください。マルチ AZ が無効の状態で Redis レプリケーションオプションを選択した場合、プライマリノードに障害が発生すると、リードレプリカノードへのフェイルオーバーを開始するオプションが表示されます。同じゾーンまたは別のゾーンのノードにフェイルオーバーすることができます。元のゾーンにフェイルバックするには、元のゾーンのリードレプリカをプライマリに昇格してください。修復された Redis サーバーノードに Redis クライアントライブラリを再接続するように、アプリケーションを構築することもできます。一部の Redis ライブラリは、通信エラーやタイムアウトが発生すると、サーバーの使用をいつまでも停止するため、この方法が役立つ可能性があります。

Q: フェイルオーバーはどのように機能しますか?

マルチ AZ が有効になっているレプリケーショングループでのフェイルオーバーの動作については、このページのマルチ AZ セクションを参照してください。

マルチ AZ を有効にしない場合は、Amazon ElastiCache がプライマリノードをモニタリングし、ノードが使用不能になったり応答しなくなったりした場合に、Redis 用 Amazon ElastiCache が新しいサービスリソースを獲得してノードを修復してから、新しいサービスリソースを示すようにそのノードの既存の DNS 名をリダイレクトします。したがって、Redis ノードの DNS 名は一定のままですが、Redis ノードの IP アドレスは時間の経過とともに変わる可能性があります。ただし、プライマリノードを修復できない場合(なおかつマルチ AZ が無効の場合)、リードレプリカのいずれかを新しいプライマリに昇格することができます。新しいプライマリを選択する方法については、こちらをご覧ください。プライマリのエンドポイントの DNS レコードは、昇格したリードレプリカノードを示すように更新されます。元のプライマリのアベイラビリティーゾーンに、そのシャードのリードレプリカになるリードレプリカノードが作成され、新しいプライマリに従います。

Q: プライマリノードに障害が発生している場合、リードレプリカは使用できますか?

はい。プライマリノードが障害で停止しているときでも、リードレプリカは引き続き要求を処理できます。修復されたノードまたは昇格されたリードレプリカとして、プライマリノードが復元された後に、プライマリのキャッシュ情報を同期するため、リードレプリカで要求が処理されない時間が短時間発生します。

Q: Redis 用 Amazon ElastiCache ノードのパラメータはどのように設定しますか?

パラメータグループを使用して Redis インストールを設定できます。このグループは、Redis クラスター用に指定する必要があります。すべてのリードレプリカクラスターは、そのプライマリクラスターのパラメータグループを使用します。Redis パラメータグループは、1つまたは複数の Redis プライマリクラスターに適用可能な Redis 設定値の「容器」として機能します。パラメータグループを指定せずに Redis プライマリクラスターを作成すると、デフォルトのパラメータグループが使用されます。このデフォルトのグループには、これから実行するノードの種類のデフォルトを含めます。ただし、指定した設定値で Redis プライマリクラスターを実行したい場合は、新しいキャッシュパラメータグループを作成し、目的のパラメータを修正し、新しいパラメータグループを使用するようプライマリ Redis クラスターを修正するだけで十分です。

Q: Amazon ElastiCache コンソールを使用して Redis にアクセスできますか?

はい。Redis は、ElastiCache コンソールのエンジンのオプションとして表示されます。新しい Redis キャッシュクラスターを作成するには、Redis エンジンを選択して、Launch ウィザードを使用します。また、ElastiCache コンソールを使用して、既存の Redis クラスターを変更または削除することもできます。

Q: Redis 用 Amazon ElastiCache クラスターは Amazon VPC で作成できますか?

はい。VPC 内に Memcached クラスターを作成する場合と同様の方法で、Redis クラスターも VPC に作成できます。アカウントがデフォルトのアカウントで VPC の場合、Redis クラスターは、アカウントに関連付けられたデフォルトの VPC 内に作成されます。ElastiCache コンソールを使用すると、クラスターの作成時に別の VPC を指定できます。

Q: Redis のパスワード機能は Redis 用 Amazon ElastiCache でサポートされていますか?

いいえ。Redis 用 Amazon ElastiCache は Redis のパスワードをサポートしていません。これは、設定ファイルに保存されているパスワードが元々持つ制限のためです。Redis 用 ElastiCache クラスターは、Redis パスワードに依存せず、EC2 セキュリティグループに関連付けられているため、EC2 セキュリティグループに含まれるクライアントのみが Redis サーバーにアクセスできます。

Q: 新しいエンジンバージョンにアップグレードするにはどうすればよいですか?

ModifyCacheCluster API または ModifyReplicationGroup API を使用して、EngineVersion パラメータに任意のバージョンを指定することにより、新しいエンジンバージョンに簡単にアップグレードできます。ElastiCache コンソールでクラスターを選択して [Modify] をクリックします。[Modify] ウィンドウで、利用できるオプションから希望するエンジンバージョンを選択します。エンジンのアップグレードプロセスは、既存のデータをベストエフォートで保持するように設計されており、Redis レプリケーションに成功する必要があります。詳細については、こちらをご覧ください。

Q: 以前のエンジンバージョンにダウングレードできますか?

いいえ。以前のエンジンバージョンへのダウングレードはサポートされていません。

Q: 大きいノードタイプにスケールアップするにはどうすればよいですか?

ModifyCacheCluster API または ModifyReplicationGroup API を使用して、CacheNodeType パラメータに任意のノードタイプを指定することにより、大きいノードタイプに簡単にスケールアップできます。ElastiCache コンソールでキャッシュクラスターまたはレプリケーショングループを選択して、[Modify] をクリックします。[Modify] ウィンドウで、利用できるオプションから希望するノードタイプを選択します。スケールアッププロセスは、既存のデータをベストエフォートで保持するように設計されており、Redis レプリケーションに成功する必要があります。詳細については、こちらをご覧ください。

Q: 小さいノードタイプにスケールダウンできますか?

ノードタイプのスケールダウンは現在サポートされていません。


Q: Redis ノードをリードレプリカとして実行することにはどのような意味がありますか?

リードレプリカは Redis 内で次の 2 つの用途で使用されます。

  • 障害の取扱い
  • 読み込みのスケーリング

リードレプリカを含むノードを実行すると、「プライマリ」が書き込みと読み取りの両方を行います。リードレプリカは「スタンバイ」として機能し、フェイルオーバーが発生した場合は「昇格」されます。フェイルオーバー後、スタンバイはプライマリとなり、お客様のキャッシュ操作を受け付けるようになります。リードレプリカを使用すれば、読み込み量が多いキャッシュの作業負荷について、単独のノードの容量制限を超えて、伸縮自在にスケールアウトできます。

Q: Redis リードレプリカの使用を検討すべきなのはどのような場合ですか?

指定したプライマリノードで 1 つまたは複数のリードレプリカのデプロイが正しく機能する方法は、状況によって異なります。リードレプリカをデプロイする一般的な理由:

  • 読み込み量が多い作業負荷の場合、1 つのプライマリノードのコンピューティングまたは入出力の能力をスケーリングできます。これにより過度の読み込みトラフィックを 1 つまたは複数のリードレプリカに誘導することができます。
  • プライマリを使用できない場合、読み込みトラフィックを処理できます。お客様のプライマリノードが入出力リクエストを取得できない場合(バックアップまたは定期メンテナンスによる入出力一時停止のため)、読み込みトラフィックをリードレプリカに誘導することができます。このようなユースケースの場合、プライマリインスタンスを利用できないため、リードレプリカのデータは「古い」場合があるため注意が必要です。リードレプリカを使用して、障害が発生したプライマリのウォームアップを再起動することもできます。
  • データ保護シナリオ。予期せぬイベント、プライマリノードの障害、またはプライマリノードが属するアベイラビリティーゾーンが使用できなくなった場合、別のアベイラビリティーゾーン内にあるリードレプリカを新しいプライマリに昇格させることができます。

Q: 特定のプライマリノードのリードレプリカノードをデプロイするには、どうすれはよいですか?

CreateReplicationGroup API を使用するか、Amazon ElastiCache マネジメントコンソールを数回クリックすれば、数分のうちにリードレプリカを作成できます。クラスターの作成時に、MasterCacheClusterIdentifier を指定します。MasterCacheClusterIdentifier は、レプリケートする「プライマリ」ノードのキャッシュクラスター識別子です。次に、CreateCacheCluster API を呼び出して、シャード内にリードレプリカクラスターを作成します。このとき、マスターノードの ReplicationGroupIdentifier と CacheClusterIdentifier を指定します。標準のクラスターと同様、アベイラビリティーゾーンを指定することもできます。リードレプリカの作成を開始すると、Amazon ElastiCache によってシャード内のプライマリノードのスナップショットが作成され、レプリケーションが始まります。その結果、スナップショットの作成時にプライマリノードには短時間の入出力停止が発生します。一般的に、入出力の停止は 1 分ほど継続します。

リードレプリカは、作成する場合と同様に、簡単に削除できます。Amazon ElastiCache マネジメントコンソールを使用するか、DeleteCacheCluster API を呼び出してください(その際、削除するリードレプリカの CacheClusterIdentifier を指定します)。

Q: プライマリとリードレプリカの両方を同時に作成できますか?

はい。CreateReplicationGroup API を使って、または Amazon ElastiCache マネジメントコンソールから [Multi-AZ Replication] を選択して [Create] ウィザードを使って、数分以内にリードレプリカと新しいキャッシュクラスターを作成できます。クラスターの作成中には、識別子、クラスター内の希望シャード数、シャードあたりのリードレプリカを指定し、ノードタイプやエンジンバージョンといったキャッシュ作成パラメータも指定します。クラスター内のそれぞれのシャードのアベイラビリティーゾーンも指定できます。

Q: 自分のリードレプリカにどのように接続しますか?

プライマリキャッシュノードに接続する場合と同様に、DescribeCacheClusters API または AWS マネジメントコンソールを使用し、リードレプリカのエンドポイントを取得して、リードレプリカを接続できます。リードレプリカが複数ある場合、読み込みトランザクションがどのように誘導されるかはアプリケーションに依存します。

Q: 1 つのプライマリノードにいくつのリードレプリカを作成できますか?

現在、Amazon ElastiCache では、1 つのプライマリノードに最大 5 個のリードレプリカを作成できます。

Q: フェイルオーバーが発生すると、リードレプリカはどうなりますか?

フェイルオーバーが発生し、関連付けられた利用可能なリードレプリカがある場合、フェイルオーバーが完了すると自動的にレプリケーションが再開されます (新しく昇格したリードレプリカから更新データが取得されます)。

Q: 別のリードレプリカのリードレプリカを作成できますか?

別のリードレプリカのリードレプリカを作成することはできません。

Q: 自分のリードレプリカを「スタンドアロン」プライマリノードに昇格できますか?

いいえ。この機能はサポートされていません。その代わり、Redis 用 ElastiCache ノードのスナップショットを作成できます(プライマリまたは任意のリードレプリカから選択できます)。その後、そのスナップショットを、新しい Redis 用 ElastiCache のプライマリをシードするために使用できます。

Q: リードレプリカは、プライマリノードに応じて最新状態が保たれますか?

プライマリノードの更新は、関連するリードレプリカすべてに自動でレプリケーションされます。ただし、Redis の非同期レプリケーションテクノロジーを使うと、様々な理由によりリードレプリカがプライマリキャッシュノードより遅れることがあります。一般的な理由:

  • プライマリキャッシュノードに対する書き込みの入出力量が、変更をリードレプリカに適用できる速度を超えている
  • ネットワークパーティション、またはプライマリキャッシュノードとリードレプリカ間にレイテンシーがある

リードレプリカは、Redis レプリケーションの長所と短所を持っています。リードレプリカを使う場合は、リードレプリカとそのプライマリキャッシュノードの間に遅延または「矛盾」が発生する可能性があることを理解していなければなりません。ElastiCache コンソールと API の両方、および CloudWatch サービスからアクセス可能な「Replication Lag」CloudWatch メトリックを使用して、このような潜在的な遅延を監視することができます。

Q: アクティブなリードレプリカの状態はどのように把握できますか?

標準の DescribeCacheClusters API を使用すると、デプロイ済みのすべてのキャッシュクラスター (リードレプリカを含む) のリストが返されます。または Amazon ElastiCache マネジメントコンソールの [Redis] タブをクリックします。

Amazon ElastiCache は、リードレプリカのレプリケーション状態を監視し、何らかの理由でレプリケーションが停止した場合は、[Replication State] フィールドを [Error] に更新します。Redis エンジンによってスローされた、対応するエラーの詳細を確認するには、[Replication Error] フィールドを調べます。この情報に基づいて、回復のための適切な措置をとります。レプリケーションの問題を解決する方法の詳細については、Amazon ElastiCache ユーザーガイドの「Troubleshooting a Read Replica problem」の項をご覧ください。レプリケーションエラーが解決すると、[Replication State] は [Replicating] に変化します。

Amazon ElastiCache では、AWS マネジメントコンソールまたは Amazon CloudWatch API を介して Amazon CloudWatch メトリック(「Replica Lag」)を使用し、リードレプリカがプライマリからどのくらい遅れているかを確認できます。

Q: リードレプリカがプライマリノードに比べて大幅に遅れています。どうすればよいですか?

前の質問で説明したとおり、Redis 非同期レプリケーションを使用した場合、リードレプリカとプライマリノード間の「矛盾」や遅延は一般的です。既存のリードレプリカが大幅に遅れ、要件を満たしていない場合は、再起動することができます。また、レプリカの遅延は、プライマリノードの定常状態の使用パターンにより、時間と共に自然に増減する点に留意してください。

Q: リードレプリカはどのように削除しますか? プライマリノードを削除すると自動削除されますか?

AWS マネジメントコンソールを数回クリックするか、キャッシュクラスター識別子を DeleteCacheCluster API に渡すことで、リードレプリカを簡単に削除できます。プライマリキャッシュノードだけでなく、リードレプリカも削除する場合は、DeleteReplicationGroup API または AWS マネジメントコンソールを使用する必要があります。

Q: リードレプリカの価格はいくらですか? 請求はいつ開始され、いつ終了しますか?

リードレプリカは、標準ノードと同じ料金で課金されます。標準キャッシュノードと同様、リードレプリカの「ノード時間」は、リードレプリカのノードクラスで決まります。最新の料金情報については、Amazon ElastiCache の詳細ページを参照してください。プライマリキャッシュノードとリードレプリカ間のデータレプリケーションに発生したデータ転送に対しては請求されません。リードレプリカの請求は、リードレプリカを作成(一覧のステータスが「アクティブ」になるなど)してから開始します。リードレプリカは、削除するコマンドを発行するまで標準 Amazon ElastiCache キャッシュノードの時間料金で請求されます。

Q: フェイルオーバー中はどのようなことが起き、どのくらいの時間がかかりますか?

開始されるフェイルオーバーは Amazon ElastiCache でサポートされているため、すばやく操作を再開できます。フェイルオーバーが行われると、Amazon ElastiCache はリードレプリカを指示するようノードの DNS レコードを変更します。このリードレプリカが新しいプライマリに昇格します。ベストプラクティスに従い、アプリケーション層でキャッシュノード接続のリトライを実施することを推奨いたします。フェイルオーバーの開始から終了までの時間は、一般的には 3~6 分です。

Q: 別のリージョンにプライマリとしてリードレプリカを作成できますか?

いいえ。リードレプリカは、キャッシュノードプライマリと同じリージョンに属する、同じアベイラビリティーゾーンまたは別のアベイラビリティーゾーンにのみプロビジョニングできます。

Q: 私のプライマリが現在どのアベイラビリティーゾーンなのかを確認できますか?

はい。AWS マネジメントコンソールまたは DescribeCacheClusters API を使用して、現在のプライマリロケーションを確認できます。

フェイルオーバー後、プライマリは他の AWS リソース(例: EC2 インスタンス)と異なるアベイラビリティーゾーンに所在するようになります。

Q: レイテンシーについて考慮すべきですか?

アベイラビリティーゾーンは、同一リージョンの別のアベイラビリティーゾーンに対して、レイテンシーが短いネットワーク接続を提供するよう設計されています。さらに、1 つのアベイラビリティーゾーンでのサービス障害時にお客様のアプリケーションが回復力を持つように、複数のアベイラビリティーゾーン全体で冗長性を持つアプリケーションや他の AWS リソースの設計も検討できます。


Q: Redis 用 ElastiCache のマルチ AZ とは何ですか?

Redis 用 ElastiCache シャードは、プライマリと最大 5 つのリードレプリカによって構成されます。Redis は、プライマリからリードレプリカへ、非同期的にデータを複製します。幾つかの種類の計画されたメンテナンス中、または ElastiCache ノード障害、アベイラビリティーゾーン障害などの予期せぬイベントが発生している間、Amazon ElastiCache は自動的にプライマリの障害を検知し、リードレプリカを選択し、新しいプライマリに昇格させます。また、ElastiCache は昇格したリードレプリカの DNS の変更を伝達します。そのためアプリケーションがプライマリノードのエンドポイントへの書き込み中である場合、エンドポイントの変更は必要ではありません。

Q: マルチ AZ を使用することの利点は何ですか?

マルチ AZ モードで Redis 用 ElastiCache を実行する主な利点は、拡張された可用性と、管理の必要性が少なくなることにあります。Redis 用 ElastiCache のプライマリノードに障害が発生した場合、自動フェイルオーバーが完了するまでの間のプライマリへの読み取り/書き込み能力への影響が限定されます。マルチ AZ が有効になっている場合、ElastiCache ノードフェイルオーバーは自動的に作動し、管理の必要がありません。プライマリノードの中断中に Redis ノードを監視したり、手動で復旧を開始したりする必要がありません。

Q: マルチ AZ はどのように機能するのですか?

Redis 用 ElastiCache をご利用で、シャード内にプライマリノードと 1 つ以上のリードレプリカがある場合、マルチ AZ を使用できます。プライマリノードに障害が発生すると、ElastiCache は自動的に障害を検知し、利用可能なリードレプリカを 1 つ選択し、新しいプライマリに昇格させます。cluster_mode パラメータが無効にされている場合、ElastiCache によって昇格したレプリカへの DNS 変更が伝達され、アプリケーションはプライマリのエンドポイントに書き込み続けることが可能です。cluster_mode が有効にされている場合、ElastiCache によってそのクラスターのノードマップが更新されます。また、ElastiCache は障害が発生したプライマリのアベイラビリティーゾーンに、昇格したリードレプリカを置き換えるための新しいノードをスピンアップします。プライマリの障害が、一時的なアベイラビリティーゾーンの中断によって起きた場合、アベイラビリティーゾーンの復旧後に新しいレプリカが起動します。

Q: プライマリと同じアベイラビリティーゾーンにレプリカを配置できますか?

はい。同じアベイラビリティーゾーンにプライマリとレプリカの両方を配置する場合、アベイラビリティーゾーンの中断に対する Redis 用 ElastiCache のレプリケーショングループの柔軟性が与えられないことに注意してください。

Q: Amazon ElastiCache がリードレプリカへフェイルオーバーするきっかけとなるイベントは何ですか?

Amazon ElastiCache は、以下のイベントにおいてリードレプリカへのフェイルオーバーを行います。

  • プライマリのアベイラビリティーゾーンの可用性損失
  • プライマリに対するネットワーク接続の喪失
  • プライマリ上でのコンピュートユニット障害

Q: マルチ AZ をいつ使用すべきですか?

マルチ AZ と連携した Redis レプリケーションの使用は、強化された可用性と耐障害性を提供します。このようなデプロイは本番環境での使用に最適です。クラスターモードを有効にして Redis クラスター用 ElastiCache を実行している場合、シャードに 1 つ以上のレプリカが存在していれば、マルチ AZ が自動的に有効化されます。

Q: マルチ AZ が有効化された Redis 用 ElastiCache のレプリケーショングループはどのようにして作成できますか?

Redis 用 ElastiCache のプライマリとリードレプリカは、ElastiCache マネジメントコンソールの [Create] をクリックして作成できます。または CreateReplicationGroup API を呼び出すことでも作成できます。既存のクラスター (cluster_mode が無効である Redis 2.8.6、2.8.19、2.8.21、2.8.22、2.8.23、2.8.24、3.2.4) では、ElastiCache マネジメントコンソールでクラスターを選択して [Modify] をクリックするか、ModifyReplicationGroup API を使用して、マルチ AZ を有効にできます。レプリケーショングループをマルチ AZ に切り替えても、Redis データにもノードのリクエスト処理能力にも悪影響はありません。

Q: プライマリノード障害の場合に昇格されるリードレプリカはどれですか?

リードレプリカが 2 つ以上ある場合、非同期レプリケーションのプライマリへの遅延が最も小さいものが昇格されます。

Q: マルチ AZ を使用するのに必要な費用はいくらですか?

マルチ AZ は無料でご利用いただけます。使用している ElastiCache ノードに対してのみ料金が発生します。

Q: マルチ AZ によるパフォーマンス上の影響にはどんなものがありますか?

ElastiCache は現在 Redis エンジンのネイティブで非同期のレプリケーションを使用し、その長所と制限を持っています。特に、リードレプリカが初めてプライマリに接続するとき、またはプライマリに変更が加えられたとき、リードレプリカはプライマリとデータの完全な同期を行い、リードレプリカとプライマリの双方に負荷がかかります。Redis レプリケーションの詳細については、こちらをご覧ください。

Q: マルチ AZ はどのノードタイプでサポートされていますか?

1 つの例外を除き、ElastiCache のすべてのノードタイプでマルチ AZ がサポートされています。cluster_mode を無効にして Redis 2.8.x または Redis 3.x を使用する場合、T2 ファミリーではマルチ AZ がサポートされません。

Q: 自動フェイルオーバーが発生するときに警告がありますか?

はい。Amazon ElastiCache は自動フェイルオーバーが発生したことをお知らせするイベントを作成します。DescribeEvents API を使用して、ElastiCache ノードに関連するイベントについての情報を返すことができます。または、ElastiCache マネジメントコンソールの [イベント] セクションをクリックします。

Q: フェイルオーバーの後、プライマリが他の AWS リソース(例: EC2 インスタンス)とは異なるアベイラビリティーゾーンに所在しています。レイテンシーについて懸念すべきですか?

アベイラビリティーゾーンは、同一リージョンの別のアベイラビリティーゾーンに対して短いレイテンシーでネットワーク接続できるように設計されています。1 つのアベイラビリティーゾーンが中断した場合でも、お客様のアプリケーションの柔軟性を保つため、アプリケーションや他の AWS リソースをアーカイブして、複数のアベイラビリティーゾーンで冗長性を持たせることもできます。

Q: どこからマルチ AZ についての情報をさらに得ることができますか?

マルチ AZ の詳細については、ElastiCache のドキュメントを参照してください。

Q: マルチ AZ 機能をテストできますか?

はい。クラスター、またはリードレプリカを 1 つ以上持つレプリケーショングループで "Multi-AZ" 機能が有効になっている場合、フェイルオーバーをトリガーできます。ElastiCache では、実際の障害のシナリオと同じ方法で応答します。すなわち、障害を検出すると、最新のリードレプリカを新しいプライマリに昇格させます。それから、障害が発生したプライマリを交換して、昇格されたレプリカの代わりに新しいリードレプリカとしてアタッチします。フェイルオーバーのテストに関する詳細は、ドキュメントを参照してください。


Q: バックアップと復元とは何ですか?

バックアップと復元は、お客様が Redis 用 ElastiCache クラスターのスナップショットを作成できるようにする機能です。ElastiCache はスナップショットを保存し、その後ユーザーがそのスナップショットを使用して Redis クラスターを復元できるようにします。

Q: スナップショットとは何ですか?

スナップショットは特定時点における Redis クラスター全体のコピーです。

Q: なぜスナップショットが必要なのですか?

スナップショットを作成しておくと、ノード障害によってデータ損失が発生した場合や、万が一ハードウェア障害が発生した場合に役立ちます。バックアップを使用する別の一般的な理由は、アーカイブを目的とするものです。スナップショットは耐久性の高いストレージである Amazon S3 に保存され、停電があったとしてもデータは消去されません。

Q: スナップショットに対してどのような操作を行うことができますか?

スナップショットを使用して、プリロードされたデータで Redis 用 ElastiCache クラスターのウォームスタートを行うことができます。

Q: バックアップと復元はどのように機能しますか?

バックアップが開始されると、ElastiCache は指定された Redis クラスターのスナップショットを作成します。このスナップショットは、後で復旧またはアーカイブに使用できます。バックアップはユーザーが選択する任意のタイミングで開始することも、保持期間が最長 35 日のバックアップが毎日作成されるように設定することもできます。

復元するスナップショットを選択すると、新しい Redis 用 ElastiCache クラスターが作成され、スナップショットのデータが入力されます。この方法で、指定されたスナップショットから複数の Redis 用 ElastiCache クラスターを作成できます。

現在、ElastiCache は Redis のネイティブなメカニズムを使用して RDB ファイルをスナップショットとして作成し、保存します。

Q: スナップショットはどこに保存されますか?

スナップショットは S3 に保存されます。

Q: バックアップと復元の使用はどのように開始すればよいですか?

バックアップと復元機能の使用は、AWS マネジメントコンソール、ElastiCache API(CreateCacheCluster、ModifyCacheCluster、ModifyReplicationGroup の各 API)および CLI から選択できます。この機能はいつでも無効にしたり、再度アクティブ化したりすることができます。

Q: バックアップする Redis クラスターとノードはどのように指定すればよいですか?

バックアップと復元機能では、クラスターごとにスナップショットが作成されます。ユーザーは、AWS マネジメントコンソール、CLI、または CreateSnapshot API から、バックアップする Redis 用 ElastiCache クラスターを指定できます。レプリケーショングループでは、プライマリクラスターまたは任意のリードレプリカクラスターをバックアップするように選択できます。いずれかのリードレプリカでバックアップを有効にし、Redis プライマリへのレイテンシーの影響を軽減することをお勧めします。

Q: Memcached 用 ElastiCache はバックアップと復元をサポートしていますか?

いいえ、スナップショットを使用できるのは Redis 用 ElastiCache のみです。

Q: バックアップが行われるタイミングはどのように指定すればよいですか?

AWS マネジメントコンソール、CLI、または API から、単一のバックアップまたは定期的なバックアップを開始するタイミングを指定できます。ユーザーが実行できる内容は次のとおりです。

  • すぐにスナップショットを作成する。[Redis] タブの [Backup] コンソールボタン、または CreateSnapshot API から実行できます。
  • 自動的な毎日のバックアップを設定する。バックアップは任意のバックアップウィンドウで実行されます。この設定は、コンソールからクラスターを作成/修正するか、CreateCacheCluster、ModifyCacheCluster、ModifyReplicationGroup の各 API から行うことができます。

Q: バックアップウィンドウとは何ですか? なぜそれが必要ですか?

推奨されるバックアップウィンドウは、お使いの Redis 用 ElastiCache クラスターバックアップが開始される、ユーザーが定義した期間です。これは、1 日の特定の時間にバックアップを実行したり、使用量が特に高い時間帯にバックアップを避けたりしたい場合に役立ちます。

Q: スナップショットの作成はパフォーマンスにどのような影響がありますか?

スナップショットの作成中に、短い時間ですが、ノードでレイテンシーが増える場合があります。スナップショットは Redis の組み込み BGSAVE を使用し、その強度と制限による影響を受けます。具体的には、Redis プロセスは分岐し、親は継続してリクエストに対応しますが、子はデータをディスクに保存すると終了します。この分岐により、スナップショット生成中はメモリの使用量が増えます。このメモリ使用量がノードの使用可能なメモリ容量を超えると、スワップがトリガーされるため、ノードがさらに低速になる場合があります。このため、スナップショットを(プライマリではなく)リードレプリカのいずれかで生成することをお勧めします。また、予約メモリパラメータを設定してスワップの使用量を最小化することをお勧めします。詳細については、こちらをご覧ください。

Q: Redis 用 ElastiCache リードレプリカからスナップショットを作成することはできますか?

はい。リードレプリカからスナップショットを作成することは、パフォーマンスへの影響を最小化しながらデータをバックアップするための最善の方法です。

Q: バックアップと復元機能を利用できるのはどのリージョンですか?

バックアップと復元機能は、ElastiCache サービスを使用できるすべてのリージョンで利用できます。

Q: Redis 用 ElastiCache スナップショットを自己所有の S3 バケットにエクスポートできますか?

はい。Redis 用 ElastiCache スナップショットは、リージョン内にある認可された S3 バケットにクラスターとしてエクスポートできます。スナップショットのエクスポートと必要なアクセス権限の設定の詳細については、こちらを参照してください。

Q: 1 つのリージョンから別のリージョンにスナップショットをコピーすることはできますか?

はい。まず、スナップショットを同じリージョン内で選択した、認可された S3 バケットにコピーしてから、[S3 PUT object – Copy API] を使用して別のリージョン内のバケットにコピーします。S3 オブジェクトでのコピーの詳細については、こちらを参照してください。

Q: Redis 用 ElastiCache を使用している AWS アカウントを複数持っています。1 つのアカウントの ElastiCache スナップショットを使用して、別のアカウントで Redis 用 ElastiCache クラスターのウォームスタートを行うことはできますか?

はい。まず、スナップショットを同じリージョン内で選択した、認可された S3 バケットにコピーしてから、別のアカウントにクロスアカウントバケットアクセス許可を付与します。S3 クロスアカウントアクセス許可の詳細については、こちらを参照してください。最後に、コンソールの [Launch Cache Cluster] ウィザード、または CreateCacheCluster API から、クラスターを作成する際に RDB ファイルの S3 の場所を指定できます。

Q: バックアップと復元機能を使用するにはいくらかかりますか?

Amazon ElastiCache では、アクティブな Redis 用 ElastiCache クラスターごとに、1 つのスナップショットのストレージ領域を無料で利用できます。追加のストレージは、スナップショットで使用される容量に基づいて、毎月 0.085 USD/GB(すべてのリージョンで同じ価格)で課金されます。スナップショットを使用するためのデータ転送は無料です。

Q: 保持期間とは何ですか?

保持期間は、自動スナップショットが保持される期間です。例えば、保持期間が 5 に設定された場合、本日作成されたスナップショットは削除されるまでに 5 日間保持されます。1 つ以上の自動スナップショットをコピーし、手動で保存するように選択すると、保持期間が過ぎても削除されません。

Q: 自動スナップショットの保持はどのように管理すればよいですか?

AWS マネジメントコンソールまたは ModifyCluster API を使用して RetentionPeriod パラメータを修正し、自動バックアップが保持される期間を管理することができます。自動バックアップをすべて無効にしたい場合、保持期間を 0 に設定します(お勧めしません)。

Q: Redis 用 ElastiCache クラスターを削除した場合、スナップショットはどうなりますか?

Redis 用 ElastiCache クラスターを削除しても、手動スナップショットは保持されます。クラスターが削除される前に最終スナップショットを作成するオプションもあります。自動スナップショットは保持されません。

Q: バックアップと復元機能は、どのノードタイプでサポートされていますか?

t1.micro および t2 ファミリ以外のすべての Redis 用 ElastiCache のインスタンスノードタイプで、バックアップと復元がサポートされています。

現行世代のノード:

  • cache.m3.medium
  • cache.m3.large
  • cache.m3.xlarge
  • cache.m3.2xlarge
  • cache.m4.large
  • cache.m4.xlarge
  • cache.m4.2xlarge
  • cache.m4.4xlarge
  • cache.m4.10xlarge
  • cache.r3.large
  • cache.r3.xlarge
  • cache.r3.2xlarge
  • cache.r3.4xlarge
  • cache.r3.8xlarge

旧世代のノード:

  • cache.m1.small
  • cache.m1.medium
  • cache.m1.large
  • cache.m1.xlarge
  • cache.m2.xlarge
  • cache.m2.2xlarge
  • cache.m2.4xlarge
  • cache.c1.xlarge

Q: S3 に保存された独自の RDB スナップショットを使用して、Redis 用 ElastiCache クラスターのウォームスタートを行うことはできますか?

はい。コンソールの [Create Cluster] ウィザード、または CreateCacheCluster API からクラスターを作成するときに、RDB ファイルの S3 の場所を指定できます。

Q: VPC で ElastiCache を実行している場合、バックアップと復元機能を使用することはできますか?

はい。


Q: Redis クラスター用 ElastiCache はどのようなものですか?

Redis クラスター用 ElastiCache では、複数のシャードを持つマネージド型 Redis クラスターを作成し、実行できます。オープンソースの Redis 3.2 との互換性を保ちつつ、使用時の安定性と堅牢性を高めるため多くの点が強化されています (拡張内容の詳細については、下の「強化されたエンジン」セクションを参照してください)。

Q: スケールアウト Redis 環境が必要になる理由は何ですか?

スケールアウト Redis 環境を運用する 3 つの主なシナリオがあります。1 番目は、Redis データの合計メモリサイズが単一 VM のメモリ容量を超える場合、または超えることが予測される場合です。2 番目は、アプリケーションの Redis への書き込みスループットが単一 VM の容量を超えている場合です。3 番目は、データを複数のシャードに分散させることで、シングルノードに発生する可能性のある問題が Redis 環境全体に与える影響を小さくしたい場合です。

Q: Redis クラスターのワークロードを Amazon ElastiCache で実行する利点は何ですか?

Amazon ElastiCache では、サーバーリソースのプロビジョニングから、エンジンソフトウェアのインストールや選択した設定パラメータの適用に至るまで、完全マネージド型の分散インメモリ Redis 環境が実現されています。Redis エンジンは Amazon によって強化されており、安定性と堅牢性がさらに向上しています (詳細については「強化されたエンジン」セクションを参照してください)。Redis 環境の実行が開始されると、障害検出、災害復旧、バックアップ、ソフトウェアのパッチ適用などの一般的な管理タスクがサービスによって自動化されます。自動フェイルオーバーを使用した堅牢なマルチ AZ ソリューションも実現できます。クラスター内の 1 つ以上のプライマリノードに障害が発生すると、Amazon ElastiCache によって障害が自動的に検知され、最新のプライマリに最も近い状態のレプリカを昇格させることで対応します。このプロセスは自動化されており、手作業での対応は不要です。Amazon ElastiCache では、ElastiCache ノードについての詳細なモニタリングメトリクスが用意されているため、問題に対する迅速な診断と対応が可能です。

Q: Redis クラスター用 ElastiCache はオープンソースの Redis と互換性がありますか?

はい。Redis クラスター用 Amazon ElastiCache には、オープンソースの Redis 3.2 との互換性があります。Redis 用 ElastiCache のスケールアウトクラスターには、オープンソースの Redis クラスタークライアントを使用してアクセスできます。

Q: クラスター作成後にシャード数を変更できますか?

現時点では、クラスター内のシャード数を作成後に変更することはできません。

Q: 現在の Redis 2.8.x 用 ElastiCache を Redis クラスター用 ElastiCache (バージョン 3.2.4) にアップグレードする方法は?

cluster_mode パラメータを無効化して Redis 3.2 を使用している場合、アップグレードを希望するノードまたはクラスターを選択し、エンジンバージョンを変更すればアップグレードできます。エンドポイントはそのままで、ElastiCache によって Redis 3.2.4 クラスターがプロビジョンされ、データが移されます。

cluster_mode パラメータを有効化して Redis 3.2 を使用している場合、まずバックアップと復元機能を使用してデータのスナップショットを作成することで、Redis クラスターに移行できます。その後、作成されたスナップショットを選択してから [Restore Snapshot] をクリックし、スナップショットデータを使用して Redis 3.2 クラスターを作成します。最後に、クライアント内で新しいエンドポイントに更新します。クラスターモードの Redis 3.2 を使用する場合、Redis クラスタークライアントへの切り換えが必要なことに注意してください。

Q: クラスター設定の料金表は非クラスター設定と異なりますか?

いいえ。Redis 用 Amazon ElastiCache では、同じ価格でクラスター設定と非クラスター設定を選べる柔軟性が実現されています。価格はそのままに、Redis 用 Amazon ElastiCache 内の強化されたエンジン機能を利用しながら、クラスター設定のすべての機能サポートと拡張性を活用できます。

Q: Redis クラスター用 ElastiCache のマルチ AZ とは何ですか?

Redis クラスター用 ElastiCache の各シャードは、プライマリと最大 5 つのリードレプリカによって構成されます。Redis では、プライマリからリードレプリカに非同期的にデータが複製されます。特定の種類の計画されたメンテナンス中、または ElastiCache ノード障害、アベイラビリティーゾーン障害などの予期しないイベントが発生している間、プライマリの障害検知、リードレプリカの選択、新しいプライマリへの昇格が Amazon ElastiCache によって自動的に実行されます。

Redis クラスター用 ElastiCache では、Redis 3.x 環境が強化されて管理機能が用意されています。アンマネージド型の Redis 環境の運用では、プライマリノードの障害発生時、クラスターはフェイルオーバーの決定と実行をする多数のマスターに依存しています。そのような多数のマスターが存在しない場合、クラスターは障害状態になり、それ以上の読み取りや書き込みを拒否するようになります。これによってアプリケーションの可用性は大きな影響を受け、クラスターの復旧には手作業が必要となります。Redis クラスター用 ElastiCache のマルチ AZ 機能は、Redis クラスターのどのようなフェイルオーバーについても、堅牢性と効率性をもって対応できるように構築されています。

Q: Redis クラスター用 ElastiCache のマルチ AZ は、Redis 用 ElastiCache バージョン 2.8.x とどのように異なっていますか?

Redis 3.x は、すべてのクラスターノードのエンドポイントを持つノードマップを保存するインテリジェントクライアントと連携します。フェイルオーバーの間、新しいプライマリの IP エンドポイントを使用し、クライアントによってノードマップが更新されます。これにより、ElastiCache for Redis 2.8.x に比べてフェイルオーバーが最大 4 倍高速になりました。

Q: Redis クラスターのマルチ AZ はどのように機能しますか?

各シャードに 1 つ以上のリードレプリカを持つ Redis クラスター用 ElastiCache を使用している場合、マルチ AZ を利用できます。あるシャードのプライマリノードに障害が発生すると、ElastiCache によって自動的に障害が検知され、利用可能なリードレプリカ 1 つが選択されて、新しいプライマリに昇格します。昇格したレプリカは Redis 3.x クライアントによってプライマリとして更新され、アプリケーションの変更は不要です。また、障害が発生したプライマリのアベイラビリティーゾーンには、昇格したリードレプリカを置き換えるための新しいノードが ElastiCache によってスピンアップされます。プライマリの障害が、アベイラビリティーゾーンの一時的な障害によって発生した場合、アベイラビリティーゾーンの復旧後に新しいレプリカが起動します。

Q: Redis クラスター用 ElastiCache のバックアップはどのようなものですか?

Redis クラスター用 ElastiCache のバックアップでは、クラスターのシャードについて一連のスナップショットがまとめて保存され、特定の時間枠の Redis データ全体のコピーが保持されます。

Q: Redis クラスター用 ElastiCache のバックアップは、Redis 用 ElastiCache のスナップショットとどのように異なりますか?

Redis 用非クラスター ElastiCache 環境には 1 つのプライマリノードが存在するため、バックアップは Redis データのコピーを含んだ 1 つのファイルになります。Redis クラスター用 ElastiCache の場合、1 つ以上のシャードが存在するため、バックアップに複数ファイルが含まれる場合があります。

Q: 各シャード内でバックアップする Redis 用 ElastiCache ノードは、どのようにして指定するのですか?

各シャード内でバックアップするノードを手動で指定することはできません。バックアップ開始時に、各シャード内で最新の状態に最も近いリードレプリカが ElastiCache によって自動的に選択され、そのデータのスナップショットが作成されます。

Q: Redis クラスター用 ElastiCache のバックアップと復元はどのように機能しますか?

バックアップが開始されると、指定されたクラスターのバックアップが ElastiCache によって作成されます。このスナップショットは、後ほど復旧やアーカイブに使用できます。バックアップにはそのクラスターの各シャードのコピーが含まれるため、全体のバックアップには一連のファイルが含まれることになります。バックアップはユーザーが選択する任意のタイミングで開始することも、保持期間が最長 35 日のバックアップが毎日作成されるように設定することもできます。

復元するバックアップを選択すると、新しい Redis クラスター用 ElastiCache が作成され、バックアップのデータが入力されます。また、この機能を使用して ElastiCache のマネージド型 Redis クラスターに簡単に移行できます。EC2 で自己管理型の Redis を実行している場合は、RDB スナップショットまたは既存のワークロード (Redis クラスターと単一シャードの Redis の両方) を取得して S3 に保存し、ElastiCache でシャーディングされた Redis クラスターと、目的の数のシャードを作成する際に入力情報として使用します。残りの処理は ElastiCache によって行われます。

現時点で、ElastiCache では Redis のネイティブメカニズムを使用して、各シャード内に RDB ファイルが作成され、バックアップとして保存されます。

Q: Redis クラスター用 ElastiCache のバックアップはポイントインタイムのスナップショットですか?

バックアップを起動すると、ElastiCache によってクラスター内のすべてのシャードのバックアップが同時にトリガーされます。まれなケースですが、初回の作成が成功しなかった 1 つ以上のスナップショットを再作成する必要が生じることがあります。これは ElastiCache によって自動的に実行されるため、ユーザーの操作は不要です。ただし、このような場合には、個々のスナップショットには作成元ノードのポイントインタイムの状態が反映されますが、クラスターのスナップショットすべてが同時に作成されているものではありません。

Q: バックアップが行われるタイミングはどのように指定すればよいですか?

AWS マネジメントコンソール、CLI、または API から、単一のバックアップまたは定期的なバックアップを開始するタイミングを指定できます。お客様が設定できる内容は次のとおりです。

  • すぐにバックアップを作成する。 [Create Snapshot] コンソールボタン、または CreateSnapshot API から実行できます。
  • 自動的な毎日のバックアップを設定する。バックアップは任意のバックアップウィンドウで実行されます。この設定は、コンソールからクラスターを作成/修正するか、CreateReplicationGroup、ModifyReplicationGroup の各 API から行うことができます。

Q: S3 に保存された独自の RDB スナップショットを使用して、スケールアウト Redis クラスター用 ElastiCache 環境の事前シードは実行できますか?

はい。コンソールの [Create Cluster] ウィザードまたは CreateReplicationGroup API を使用してクラスターを作成する際、RDB ファイルの S3 の場所を指定できます。ElastiCache によって RDB スナップショットの Redis キースペースが解析され、新しいクラスターのシャード中に再分配されます。


Q: Redis 用 ElastiCache 内のエンジンは、オープンソースの Redis とどのように異なりますか?

Redis 用 ElastiCache 内のエンジンはオープンソースの Redis と完全互換ですが、堅牢性と安定性を向上させるための強化が図られています。以下のような点が強化されています。

  • メモリの可用性の強化: 同期やスナップショットの間にスワップ使用率が増加するというリスクなしに、アプリケーションにより多くのメモリを安全に割り当てられるようになりました。
  • 同期の向上: 高負荷状態やネットワーク切断からの回復時の同期の堅牢性が向上しました。さらに、このオペレーションにディスクが使用されなくなったため、プライマリとレプリカの両方について同期速度が向上しました。
  • より円滑なフェイルオーバー: フェイルオーバーの発生時に、プライマリとの完全再同期を実行するためのレプリカデータのフラッシュが行われなくなったため、シャードの回復速度が向上しました。

Q: 強化されたエンジンはどのようにして使用できますか?

Amazon ElastiCache マネジメントコンソールから強化されたエンジンを使用するには、クラスターの作成時に Redis エンジンバージョン 2.8.22 以降と互換性のあるエンジンを選択します。その時点から、強化されたエンジンを使用することになります。ElastiCache API や AWS CLI でも、CreateCacheCluster API の実行時にエンジンバージョンを指定することで強化されたエンジンを使用することができます。

Q: ElastiCache の強化されたエンジンを使用するために、アプリケーションのコードを変更する必要がありますか?

いいえ。強化されたエンジンはオープンソースの Redis と完全互換であるため、アプリケーションのコードにはまったく手を加えずに、向上した堅牢性と安定性を利用できます。

Q: 強化されたエンジンを使用するには、どれほどの料金がかかりますか?

強化されたエンジンは追加料金なしで使用できます。これまでと同様に、使用したノードについてのみ課金されます。