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 4.0.10、3.2.10、3.2.6、3.2.4、2.8.24、2.8.23、2.8.22、2.8.21、2.8.19、2.8.6、2.6.13 をサポートしています。

Q: Redis 用 Amazon ElastiCache の料金はどのくらいですか?

料金の最新情報については、料金ページを参照してください。

Q: Redis 用 Amazon ElastiCache のノード、クラスター、およびレプリケーショングループとは何ですか?

Redis 用 ElastiCache ノードとは、Redis 用 Amazon ElastiCache のデプロイにおける最小の構成要素です。Redis 用 ElastiCache の各ノードは、Redis プロトコルをサポートし、それ自身の DNS 名とポートを持っています。複数の種類の Redis 用 ElastiCache ノードがサポートされており、それぞれ CPU 能力や関連付けられているメモリサイズが異なります。Redis 用 ElastiCache ノードは、プライマリまたはリードレプリカの役割を担うことができます。プライマリノードは、複数のリードレプリカノードにレプリケートできます。Redis 用 ElastiCache クラスターは、同じ役割を持つ 1 つまたは複数の Redis 用 ElastiCache ノードのコレクションです。プライマリノードはプライマリクラスター内に作成され、リードレプリカノードはリードレプリカクラスター内に作成されます。現在、1 つのクラスターは 1 つのノードのみを持つことができます。将来的には、この上限を引き上げる予定です。クラスターは論理キー空間を管理し、各ノードは、そのキー空間の一部について責任を持ちます。管理操作のほとんどは、クラスターレベルで実行されます。Redis 用 ElastiCache レプリケーショングループは、Redis インストールのプライマリクラスターとリードレプリカクラスターをカプセル化します。1 つのレプリケーショングループには、1 つのプライマリクラスターと、0 個または複数のリードレプリカクラスターが含まれます。レプリケーショングループ内のすべてのノード (つまりクラスター) は、ノードの種類、パラメータ、およびセキュリティグループの設定が同じになります。

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 はマルチ AZ 操作をサポートしていますか?

はい。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 エンジンを選択して、作成ウィザードを使用します。また、ElastiCache コンソールを使用して、既存の Redis クラスターを変更または削除することもできます。

Q: Redis 用 Amazon ElastiCache クラスターは Amazon 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 Cache Cluster] ウィンドウまたは [Modify Replication Group] ウィンドウで、選択可能なオプションから任意のエンジンバージョンを選択します。エンジンのアップグレードプロセスは、既存のデータをベストエフォートで保持するように設計されており、Redis レプリケーションに成功する必要があります。詳細については、こちらをご覧ください。

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

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

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

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

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

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

Q: Redis の CPU 使用率を測定するにはどのメトリクスが適切ですか?

Amazon ElastiCache には、Redis 用 ElastiCache ワークロードの CPU 使用率を測定するメトリクスとして、EngineCPUUtilization と CPUUtilization の 2 つが用意されています。CPUUtilization メトリクスはインスタンス (ノード) の CPU 使用率を測定し、EngineCPUUtilization メトリクスは Redis プロセスレベルの使用率を測定します。CPUUtilization メトリクスに加えて EngineCPUUtilization メトリクスも必要になるのは、メインの Redis プロセスがシングルスレッドであり、インスタンスで利用できる複数 CPU コアのうち 1 CPU のみを使用するためです。このため、CPUUtilization メトリクスでは Redis プロセスレベルでの CPU 使用率を正確に把握することができません。CPUUtilization メトリクスと EngineCPUUtilization メトリクスの両方を使用して、Redis クラスターの CPU 使用状況の詳細を把握することをお勧めいたします。これらのメトリクスはすべての AWS リージョンで使用でき、CloudWatch を使用するか、AWS マネジメントコンソールを通じてアクセスできます。


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

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

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

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

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] を選び、[Launch Cache Cluster] ウィザードを使って、数分以内にリードレプリカと新しいキャッシュクラスターを作成できます。レプリケーショングループを作成するとき、キャッシュノードタイプやキャッシュエンジンバージョンなどのキャッシュ作成のパラメータに加え、レプリケーショングループの識別子、レプリケーショングループ内に作成したいクラスターの合計数を明記します。レプリケーショングループ内のそれぞれのクラスターのアベイラビリティーゾーンも明記できます。

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

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

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

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

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

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

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

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

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

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

Q: 自分のリードレプリカは、プライマリキャッシュノードに応じて最新状態が保たれますか?

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

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

リードレプリカは、Redis レプリケーションの長所と短所の影響を受けます。リードレプリカを使う場合は、リードレプリカとそのプライマリキャッシュノードの間に遅延または「矛盾」が発生する可能性があることを理解していなければなりません。リードレプリカの「矛盾」を見つける方法については、こちらをクリックしてください。

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

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

Amazon ElastiCache では、リードレプリカのレプリケーション状態を監視し、何らかの理由でレプリケーションが停止した場合は、[Replication State] フィールドが [Error] に更新されます。Redis エンジンによってスローされた、対応するエラーの詳細を確認するには、[Replication Error] フィールドを調べます。この情報に基づいて、回復のための適切な措置をとります。レプリケーションの問題を解決する方法の詳細については、Amazon ElastiCache ユーザーガイドの「リードレプリカの問題のトラブルシューティング」の項をご覧ください。レプリケーションエラーが解決すると、[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 つ選択して新しいプライマリレプリカに昇格させます。ElastiCache は昇格したレプリカの DNS の変更を伝達します。そのためアプリケーションはプライマリのエンドポイントに書き込み続けることが可能です。また、ElastiCache では、障害が発生したプライマリのアベイラビリティーゾーンに、昇格したリードレプリカを置き換えるための新しいノードがスピンアップされます。プライマリの障害が、アベイラビリティーゾーンの一時的な中断によって起きた場合、アベイラビリティーゾーンの復旧後に新しいレプリカが起動します。

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

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

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

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

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

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

マルチ AZ と連携した Redis レプリケーションを使用すると、可用性と耐障害性が強化されます。そのようなデプロイは運用環境での使用に最適です。

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

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

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

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

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

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

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

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

Q: マルチ AZ をサポートするキャッシュノードのタイプは何ですか?

ElastiCache がサポートするマルチ AZ 内のすべてのキャッシュノードが利用可能です。ただし、T1 と T2 ファミリーは除きます。

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

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

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

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

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

マルチ 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: バックアップが行われるタイミングはどのように指定すればよいですか?

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

  • 直ちにスナップショットを作成する (コンソールの [Create Snapshot] ボタンまたは 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.r4.large
  • cache.r4.xlarge
  • cache.r4.2xlarge
  • cache.r4.4xlarge
  • cache.r4.8xlarge
  • cache.r4.16xlarge

旧世代のキャッシュノード:

  • 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 クラスターのウォームスタートを行うことはできますか?

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

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

はい。


Q: オンラインのクラスターサイズ変更とは何ですか?

Redis 用 Amazon ElastiCache では、実行中のクラスターにシャードの追加や削除を実行する機能が提供されています。Redis クラスターを動的にスケールアウトまたはスケールインして、需要の変化に適応できます。ElastiCache ではシャードの追加や削除、および新しいシャード設定でのハッシュスロットの均一な再分散によりクラスターのサイズが変更されますが、クラスターはオンラインのままで、リクエストにも対応します。

Q: オンラインのクラスターサイズ変更を使用する利点は何ですか?

クラスターを動的にスケールアウトおよびスケールインできる機能により、アプリケーションの変動性を管理し、需要の変動に対応できるようになります。シャードの追加や削除でクラスターのサイズを適切に調整して、パフォーマンスとインメモリ容量をスケールできます。この機能によって、ピーク需要に合わせてクラスターを余分にプロビジョニング する 必要がなくなり、効率を向上させコストを削減できます。

Q: オンラインのクラスターサイズ変更を使用するにはどうすればよいですか?

オンラインのクラスターサイズ変更は Redis エンジンのバージョン 3.2.10 以降で使用できます。クラスターを リシャーディング するには、クラスターを選択し、シャードの追加または削除を指定します。クラスターのサイズ変更によってスケールアウトする場合、ElastiCache によってシャードが追加され、シャード間でスロットが均一に配分 (個数ごと) されるよう、既存シャードから新しいシャードにスロットが移行されます。同様に、クラスターのサイズ変更によってスケールインする場合、引き続き使用するシャードにスロットが均一に配分されるよう ElastiCache によってスロットが移行され、指定されたシャードは削除されます。

Q: オンラインのクラスターサイズ変更にはどれほどの時間がかかりますか?

クラスターのサイズ変更にかかる時間は、シャード間で移行が必要なスロット 、データのサイズ、クラスターの受信リクエストレートなど複数の要素によって異なります。ただし、このワークフローはスロット移行を並列実行するように最適化されているため、クラスターのスケールアウトのためシャードの追加にかかる時間は短縮されます。

Q: クラスターのサイズ変更の進行中にもそのクラスターを使用できますか?

はい。 リシャーディング の進行中、クラスターはオンラインのままで、受信リクエストが処理されます。ただし、クラスターの負荷を増やさないよう、 リシャーディング 中のクラスターのスナップショット作成はサポートされていません。

Q: このオペレーションはクラスターのパフォーマンスに影響を与えますか?

オンラインのクラスターサイズ変更にはダウンタイムなしでのスケールアウトおよびスケールインという利点がありますが、コンピューティング負荷の高いオペレーションであるため、クライアント接続のレイテンシーが大きくなる場合があります。オペレーション実行中のクラスターの負荷を減らすため、ベストプラクティス (ドキュメント内に記載) に従うことを推奨します。

Q: リシャーディング オペレーションの進行状況はどのように追跡できますか?

このオペレーションの進行状況は、クラスター、 シャード 、ノードのステータスを監視することにより追跡できます。オペレーション実行中、クラスター、 シャード 、ノードのステータスは「変更中」になります。同様に、シャードが作成中、削除中、スロット移行実施中の場合は、個々のシャードのステータスにもこのステータスが反映され、進行状況が表示されます。さらに、エンドツーエンドのオペレーションのステータスは リシャーディング オペレーションの進行状況インジケーターを使用して追跡することもできます。これは、処理の完了割合を示し、オペレーションの予想残り時間が表示されます。最後に、このオペレーション中に実行されているアクション (シャード作成、スロット移行など) が記述されたイベントメッセージにより、進行状況が示されます。

Q: Redis 用 ElastiCache クラスターの再分散オペレーションとは何ですか?

再分散オペレーションは、均一に分散させるため、既存のシャードでスロットを再分散するために使用できます。不均等なスロット分散が手動で指定されたクラスターが作成された場合や、スケールアウトおよびスケールインオペレーションのためにクラスターの分散が均等でない場合に便利です。各スロットに要求されるメモリと I/O が同等であると仮定すれば、スロットの個数を均一に分散させることが、シャード間で負荷を分散する簡単な方法です。

Q: クラスターをスケールアウトする際、タグ付けはどのように機能しますか?

クラスターのスケールアウトのためにノードが追加される場合、各ノードには既存ノードすべてに共通する、同一のタグのセットが含まれています。また、ユーザーはすべてのノードのタグを変更でき、これまでと同様にタグ付けを使用できます。

Q: オンラインのクラスターサイズ変更を使用するには、クライアント側またはアプリケーション側での変更が必要ですか?

クラスターのサイズ変更ワークフローで使用される強化されたスロット分散は、Redis クラスタークライアントの動作に準拠しているため、アプリケーションの変更は必要ありません。ElastiCache ではクラスターのエンドポイントがそのまま維持され、既存のクライアントを変更せずに使用し続けることができます。

Q: 強化された Redis エンジンの使用料金はいくらですか?

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

 


Q: Redis 用 ElastiCache の転送時の暗号化はどのように役立ちますか?

転送時の暗号化機能を使用すると、Redis サーバー間 (プライマリノードとリードレプリカノード) だけでなく、クライアントと Redis サーバー間のすべての通信を暗号化できます。

Q: Redis 用 ElastiCache の保管時の暗号化はどのように役立ちますか?

保管時の暗号化を使用すると、バックアップと復元時のデータの暗号化が可能になり、ディスク上や Amazon S3 を使用してバックアップおよび復元されるデータが暗号化されます。

Q: 転送時の暗号化、保管時の暗号化、および Redis AUTH は、どうすれば使用できますか?

転送時の暗号化、保管時の暗号化、および Redis AUTH はすべてオプトイン機能です。コンソールまたはコマンドラインインターフェイスを使用して Redis クラスターを作成する際に、暗号化と Redis AUTH を有効にするかどうかを指定してから、Redis クラスターとの通信の認証トークンを入力できます。暗号化を有効にした状態でクラスターをセットアップすると、ElastiCache によって証明書の有効期限と更新がシームレスに管理されます。別途アプリケーションから操作を行う必要はありません。また、暗号化された転送トラフィックを利用するには、Redis クライアントで TLS をサポートする必要があります。

Q: 転送時の暗号化や保管時の暗号化を使用する際に、使用する必要のある Redis 用 Amazon ElastiCache クライアントはありますか?

いいえ。転送時の暗号化では、クライアントが TLS をサポートしている必要があります。一般的な Redis クライアント (Lettuce、Predis、go-Redis など) の多くでは、構成をいくつか設定することで TLS のサポートが提供されます。選択した Redis クライアントが、TLS をサポートし、これまでと同じように引き続き Redis 用 ElastiCache を使用するように構成されていることを確認する必要があります。

Q: 転送時の暗号化と保管時の暗号化を、既存の Redis 用 ElastiCache クラスターで有効にできますか?

いいえ。転送時の暗号化と保管時の暗号化のサポートは、新しいクラスターでのみ利用できます。既存の Redis 用 ElastiCache クラスターではサポートされていません。Redis 用 ElastiCache バージョン 4.0.10 および 3.2.6 では、そのような機能がサポートされています。

Q: 証明書を更新するために何か操作が必要ですか?

いいえ。証明書の有効期限と更新は、ElastiCache によってユーザーから見えない形で管理されます。実行中の証明書の管理に必要なユーザーの操作はありません。

Q: 自分の証明書を暗号化に使用できますか?

いいえ。現在 ElastiCache では、自分の証明書を使用する機能は提供されていません。ElastiCache ではユーザーに対して透過的に証明書が管理されます。

Q: 転送時の暗号化と保管時の暗号化では、どのインスタンスタイプがサポートされますか?

転送時の暗号化と保管時の暗号化では、すべての現行世代のインスタンスがサポートされます。

Q: 暗号化の使用には、追加のコストがかかりますか?

暗号化の使用に追加のコストはかかりません。

 


Q: Redis 用 ElastiCache ではどのようなコンプライアンスプログラムがサポートされていますか?

Redis 用 ElastiCache では、SOC 1、SOC 2、SOC 3、ISO、MTCS、C5、PCI、HIPAA、FedRAMP などのコンプライアンスプログラムがサポートされています。サポートされているコンプライアンスプログラムの最新のリストについては、「コンプライアンスプログラムによる AWS 対象範囲内のサービス」を参照してください。

Q: Redis 用 Amazon ElastiCache は PCI に準拠していますか?

はい。AWS PCI コンプライアンスプログラムには、Redis 用 Amazon ElastiCache が PCI 準拠サービスとして含まれています。

詳しくは以下のリソースをご覧ください。

コンプライアンスプログラムの対象範囲に含まれる Redis 用 Amazon ElastiCache の現在のリストについては、「コンプライアンスプログラムによる AWS 対象範囲内のサービス」を参照してください。

Q: Redis 用 Amazon ElastiCache は HIPAA に対応していますか?

はい。Redis 用 Amazon ElastiCache は HIPAA 対応サービスであり、AWS 事業提携契約 (BAA) の対象になっています。このため、Redis 用 ElastiCache を使用して、保護された医療情報 (PHI) の処理、管理、保存を行うことや、ヘルスケアアプリケーションを実行することができます。

Q: HIPAA 対応の Redis 用 ElastiCache を使用するにはどうすればよいですか?

AWS と事業提携契約 (BAA) を締結している場合は、Redis 用 ElastiCache を使用して、HIPAA 準拠アプリケーションを構築できます。BAA を締結していない場合や、HIPAA 準拠アプリケーションでの AWS の使用に関するご質問がある場合は、詳細についてお問い合わせください。PHI を 保存 、処理、転送するように Amazon HIPAA 対応サービスを設定する方法については、アマゾン ウェブ サービスの HIPAA セキュリティおよびコンプライアンス向けアーキテクチャ設計を参照してください。

Q: Redis 用 Amazon ElastiCache は FedRAMP で認可されていますか?

AWS FedRAMP コンプライアンスプログラムには、Redis 用 Amazon ElastiCache が FedRAMP 認可サービスとして含まれています。米国の政府機関のお客様とパートナーは現在、Redis 用 ElastiCache の最新バージョンを使用して、FedRAMP システム、データ、およびミッションクリティカルで影響レベルが高いワークロードを AWS GovCloud (米国) リージョンで、また、影響レベルが中程度のワークロードを AWS 米国東部リージョン/西部リージョンで処理し、保存しています。

詳しくは以下のリソースをご覧ください。

コンプライアンスプログラムの対象範囲に含まれる Redis 用 Amazon ElastiCache の現在のリストについては、「コンプライアンスプログラムによる AWS 対象範囲内のサービス」を参照してください。

Q: コンプライアンス機能を使用するには追加料金がかかりますか?

いいえ。コンプライアンス機能を使用しても追加料金は発生しません。