AWS を無料でお試しください

まずは無料で始める
またはコンソールにサインイン

AWS 無料利用枠には、Amazon ElastiCache の 750 時間分のマイクロキャッシュノードが含まれています。

AWS 無料利用枠の詳細はこちら »


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

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 はマルチアベイラビリティーゾーン操作をサポートしていますか?

はい。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 の場合、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 キャッシュノードをリードレプリカとして実行することにはどのような意味がありますか?

リードレプリカは 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 ユーザーガイドの「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 つ選択し、新しいプライマリに昇格させます。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.6、2.8.19、2.8.21、2.8.22、2.8.23、および 2.8.24) では、レプリケーショングループを選択し、ElastiCache マネジメントコンソールの [Modify] をクリックするか、ModifyReplicationGroup API を使用してマルチ AZ を有効にできます。レプリケーショングループをマルチ AZ に切り替えても、Redis データにもノードのリクエスト処理能力にも悪影響はありません。

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

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

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

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

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

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

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

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

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

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

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

はい。コンソールの [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 バージョン 3.2.6 以降でサポートされています。

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

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

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

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

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

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

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

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

 


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 用 ElastiCache がサポートしているコンプライアンスプログラムはどれですか?

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

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

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