Redis 用 Amazon ElastiCache
Redis 用 ElastiCache ユーザーガイド (API バージョン 2015-02-02)

Redis 用 ElastiCache コンポーネントと機能

ここでは、Amazon ElastiCache のデプロイメントの主なコンポーネントの概要を確認できます。

ElastiCache ノード

ノードとは、ElastiCache のデプロイにおける最小の構成要素です。ノードは他のノードから分離するか、一定の関係を設定できます。

ノードは、安全なネットワークに接続された RAM の固定サイズの断片です。各ノードは、クラスター作成時に選択したエンジンとバージョンのインスタンスを実行します。必要に応じて、異なるインスタンスタイプにノードのクラスターを拡大または縮小できます。詳細については、「Redis 用 ElastiCache クラスターのスケーリング」を参照してください。

クラスター内の各ノードは同じインスタンスタイプで、同じキャッシュエンジンを実行します。各キャッシュノードはそれぞれ Domain Name Service (DNS) 名とポートを持っています。それぞれ関連付けられている異なるメモリ量で、複数のタイプのキャッシュノードがサポートされています。サポートされるインスタンスタイプノードのリストについては、「サポートされているノードの種類」を参照してください。

使用したノードの分だけを支払う、従量課金制でノードを購入することができます。または、時間当たりの大幅な割引率でリザーブドノードを購入することもできます。使用率が高い場合は、リザーブドノードを購入するほうがコストを削減できます。クラスターを常に使用しており、急激な使用率の増加には一時的にノードを追加して対処しているとします。この場合、多数のリザーブドノードを購入してほとんどの時間実行することができます。一時的にノードを追加する必要がある場合は従量制料金で購入できます。リザーブドノードの詳細については、「ElastiCache リザーブドノード」を参照してください。

ノードの詳細については、「ノードの管理」を参照してください。

Redis 用 ElastiCache シャード

Redis シャード (API および CLI ではノードグループと呼ばれる) は、1 ~ six の関連ノードのグループです。Redis (クラスターモードが無効) クラスターには、常に 1 つのみのシャードが含まれます。Redis (クラスターモードが有効) クラスター内のシャード数は 1 – 15 個です。

複数ノードシャードでは、1 つの読み書き可能プライマリノードと 1 – 5 のレプリカノードを含めることで、レプリケーションを実装します。詳細については、「レプリケーショングループを使用する高可用性」を参照してください。

シャードの詳細については、「シャード」を参照してください。

Redis 用 ElastiCache クラスター

Redis クラスター は、単一または複数の Redis 用 ElastiCache シャード の論理グループです。データは Redis (クラスターモードが有効) クラスター内のシャード間で分割されます。

クラスターを対象とした多くの ElastiCache オペレーションがあります。

  • クラスターの作成

  • クラスターの変更

  • クラスター (Redis のすべてのバージョン) のスナップショットを作成する

  • クラスターの削除

  • クラスターのエレメントの表示

  • クラスター間で送受信されるコスト配分タグの追加または削除

詳細については、次の関連トピックを参照してください。

一般的なクラスターの設定

Redis クラスターには 1 – 15 のシャード (API ではノードグループと呼ばれる) が含まれており、それぞれがデータのパーティションです。Redis (クラスターモードが無効) は、常に 1 個のシャードのみを使用します。

以下は一般的なクラスターの構成です。

Redis クラスター

Redis (クラスターモードが有効) クラスターには 1 – 15 のシャード (API および CLI ではノードグループと呼ばれる) が含まれています。Redis (クラスターモードが無効) クラスターには、常に 1 個のシャード (API および CLI では 1 つのノードグループ) のみが含まれます。Redis シャードには、1 ~ six のノードが含まれます。シャードに複数のノードがある場合、シャードでは、1 つを読み書き可能プライマリノード、その他を読み取り専用レプリカノードとするレプリケーションが可能です。

耐障害性を高めるために、Redis クラスターでは 2 つ以上のノードを含め、自動フェイルオーバーを備えたマルチ AZ を有効にすることをお勧めします。詳細については、「障害の軽減」を参照してください。

Redis (クラスターモードが無効) クラスターの需要の変化に応じて、別のノードインスタンスタイプにクラスターを移動することで、クラスターを拡張または縮小できます。アプリケーションで読み取りのワークロードが高い場合は、Redis (クラスターモードが無効) クラスターに読み取り専用レプリカを追加することをお勧めします。それにより、読み取りを適切な数のノード間に分散させることができます。

ElastiCache では、Redis (クラスターモードが無効) クラスターのより大きいノードタイプへの動的な変更がサポートされています。スケールアップ/ダウンの詳細については、「単一ノードの Redis (クラスターモードが無効) クラスターのスケールアップ」または「レプリカノードを含む Redis (クラスターモードが無効) クラスターのスケーリング」を参照してください。

Redis 用 ElastiCache のレプリケーション

ここでの説明を読み進める前に、「Redis 用 ElastiCache の用語」を参照して、ElastiCache コンソールと ElastiCache API および AWS CLI との用語の違いを理解してください。

レプリケーションは、2 ~ six 個のノードをシャード (API と CLI ではノードグループと呼ばれる) にまとめることで実装されます。これらのノードの 1 つは読み書き可能プライマリノードです。他のすべてのノードは読み取り専用レプリカノードです。

各レプリカノードは、プライマリノードからのデータのコピーを維持します。レプリカノードは、非同期レプリケーションメカニズムを使用して、プライマリノードとの同期を維持します。アプリケーションは、クラスターのどのノードからでも読み込みことができますが、書き込むことができるのはプライマリノードのみになります。リードレプリカは、読み取りを複数のエンドポイントに分散させることで拡張できます。リードレプリカは、データの複数のコピーを維持することで、耐障害性が向上します。複数のアベイラビリティーゾーンにリードレプリカを配置することで、耐障害性が向上します。耐障害性の詳細については、「障害の軽減」を参照してください。

Redis (クラスターモードが無効) クラスターには 1 個のシャード (API および CLI ではノードグループと呼ばれる) が含まれています。Redis (クラスターモードが有効) クラスターは、1 – 15 個のシャード (API および CLI では 1 つのノードグループ) をサポートします。

以下の図では、コンソールのビューと用語を使用して、Redis (クラスターモードが無効) と Redis (クラスターモードが有効) クラスターのレプリケーションを示しています。


					イメージ: Redis のレプリケーション (コンソールビュー)、1 つのシャードと複数のシャード

API と CLI の観点からのレプリケーションでは、以前のバージョンとの互換性を維持するために異なる用語を使用していますが、結果は同じです。以下の表では、レプリケーションの実装に関する API および CLI の用語を示しています。

レプリケーション: Redis (クラスターモードが無効) および Redis (クラスターモードが有効) の比較

次の表に、Redis (クラスターモードが無効) レプリケーショングループと Redis (クラスターモードが有効) レプリケーショングループのさまざまな機能の比較を示します。

Redis (クラスターモードが無効) Redis (クラスターモードが有効)
シャード (ノードグループ) 1 1–15
各シャードあたりのレプリカ数 (ノードグループ) 0–5 0–5
データのパーティション化 いいえ はい
レプリカの追加/削除 はい いいえ
ノードグループの追加/削除 いいえ いいえ
サポートの拡大 はい いいえ
エンジンアップグレードのサポート はい 該当なし
レプリカをプライマリに昇格 はい いいえ
自動フェイルオーバーを備えたマルチ AZ オプション 必須
バックアップ/復元 はい はい
注:
どのプライマリにもレプリカがなく、プライマリに障害が発生した場合、そのプライマリのデータがすべて失われます。
バックアップと復元を使用して Redis (クラスターモードが有効) を移行できます。
バックアップと復元を使用して Redis (クラスターモードが有効) クラスターのサイズを変更できます。

すべてのシャード (API と CLI ではノードグループ) とノードは同じ AWS リージョンに存在する必要があります。ただし、その AWS リージョン内の複数のアベイラビリティーゾーンに個別のノードをプロビジョニングできます。

リードレプリカでは、データが 2 つ以上のノード (プライマリと 1 つ以上のリードレプリカ) にレプリケートされているので、潜在的なデータ損失からデータが保護されます。信頼性を高め、より迅速な復旧を可能にするために、異なるアベイラビリティーゾーンに 1 つ以上のリードレプリカを作成し、AOF を使用する代わりに自動フェイルオーバーを備えたマルチ AZ を有効にすることをお勧めします。自動フェイルオーバーを備えたマルチ AZ が有効になっている場合、AOF は無効になります。詳細については、「ダウンタイムの最小化: 自動フェイルオーバーでのマルチ AZ」を参照してください。

レプリケーション: 制限と例外

  • AOF は cache.t1.micro のノードタイプではサポートされていません。

  • 自動フェイルオーバーを備えたマルチ AZ は Redis バージョン 2.6.8 以降でのみサポートされています。

  • 自動フェイルオーバーを備えたマルチ AZ はノードタイプ T1 および T2 ではサポートされていません。

AOF とマルチ AZ の詳細については、「障害の軽減」を参照してください。

AWS のリージョンとアベイラビリティーゾーン

Amazon ElastiCache は、世界中の複数の AWS リージョンで利用できます。したがって、ビジネスの要件に合った場所で ElastiCache クラスターを起動できます。たとえば、お客様の最寄りの AWS リージョンで起動するか、または特定の法的要件を満たすことができます。

デフォルトでは、AWS SDK、AWS CLI、ElastiCache API および ElastiCache コンソールは、米国西部 – オレゴンリージョンを参照しています。ElastiCache が新しい AWS リージョンでも利用可能になると、その AWS リージョンの新しいエンドポイントもアプリケーションの HTTP リクエスト、AWS SDK、AWS CLI、および ElastiCache コンソールで利用できるようになります。

各 AWS リージョンは、他の AWS リージョンと完全に分離されるように設計されています。各リージョン内には複数のアベイラビリティーゾーンがあります。別のアベイラビリティーゾーンでノードを起動して、最大限の耐障害性を実現できます。AWS リージョンとアベイラビリティーゾーンの詳細については、「リージョンとアベイラビリティーゾーンの選択」を参照してください。次の図では、AWS リージョンとアベイラビリティーゾーンのしくみの概要を示します。


					イメージ: AWS リージョンとアベイラビリティーゾーン

ElastiCache でサポートされている AWS リージョンおよびそのエンドポイントについては、「サポートされているリージョンおよびエンドポイント」を参照してください。

Redis 用 ElastiCache エンドポイント

エンドポイントは、アプリケーションが ElastiCache ノードまたはクラスターに接続するのに使用する一意のアドレスです。

単一ノードの Redis (クラスターモードが無効) エンドポイント

単一ノード Redis クラスターのエンドポイントは、読み取りおよび書き込みのためにクラスターに接続するのに使用されます。

マルチノードの Redis (クラスターモードが無効) エンドポイント

複数ノード Redis (クラスターモードが無効) クラスターには、2 種類のエンドポイントがあります。プライマリエンドポイントは常に、プライマリロールで特定のノードが変わっても、クラスター内のプライマリノードに接続します。クラスターへのすべての書き込みには、プライマリエンドポイントを使用します。

Redis (クラスターモードが無効) クラスター内のリードエンドポイントは常に、特定のノードを参照します。リードレプリカを追加または削除するたびに、アプリケーションで関連するノードエンドポイントを更新する必要があります。

Redis (クラスターモードが有効) エンドポイント

Redis (クラスターモードが有効) クラスターには、1 つの設定エンドポイントがあります。設定エンドポイントに接続することで、アプリケーションはクラスター内のシャードごとにプライマリおよびリードエンドポイントを検出できます。

詳細については、「接続エンドポイントの検索」を参照してください。

ElastiCache パラメータグループ

キャッシュパラメータグループは、サポートされるエンジンソフトウェアのランタイム設定を管理する簡単な方法です。パラメーターは、メモリの使用状況、削除のポリシー、項目サイズなどを制御するために使用されます。ElastiCache パラメーターグループはクラスターに適用可能なエンジン固有パラメーターの名前付きコレクションです。これにより、そのクラスター内のすべてのノードがまったく同じ方法で設定されていることを確認します。

サポートされているパラメーターのリスト、デフォルト値、変更可能なパラメーターについては、「DescribeEngineDefaultParameters」(CLI describe-engine-default-parameters) を参照してください。

ElastiCache パラメータグループの詳細については、「パラメータグループを使用したエンジンパラメータの設定」を参照してください。

Redis 用 ElastiCache のセキュリティ

セキュリティ強化のため、Redis 用 ElastiCache ノードのアクセスは、ホワイトリストに登録された Amazon EC2 インスタンスで実行されているアプリケーションに制限されます。キャッシュサブネットグループまたはセキュリティグループを使用することで、クラスターにアクセスできる Amazon EC2 インスタンスを制御できます。

デフォルトでは、すべての新しい Redis 用 ElastiCache クラスターが Amazon Virtual Private Cloud (Amazon VPC) 環境で起動されます。サブネットグループを使用して、特定のサブネットで実行されている Amazon EC2 インスタンスからのクラスターアクセスを許可できます。クラスターを Amazon VPC の外部で実行することを選択した場合、セキュリティグループを作成して、特定の Amazon EC2 セキュリティグループ内に実行されている Amazon EC2 インスタンスを承認できます。

ノードへのアクセスの制限に加えて、Redis 用 ElastiCache は指定されたバージョンの Redis 用 ElastiCache エンジンを実行するノードに対する TLS とインプレースの暗号化をサポートします。詳細については、以下を参照してください。

ElastiCache セキュリティグループ

注記

ElastiCache セキュリティグループは、Amazon Virtual Private Cloud (Amazon VPC) 環境で実行されていないクラスターにのみ適用されます。ElastiCache ノードを Amazon VPC で実行している場合は、Amazon VPC セキュリティグループでキャッシュクラスターへのアクセスを制御します。これは、ElastiCache セキュリティグループとは異なります。

ElastiCache を Amazon VPC で使用する方法については、「Amazon VPC と ElastiCache のセキュリティ」を参照してください。

ElastiCache を使用すると、セキュリティグループを使用して、クラスターへのアクセスを制御することができます。セキュリティグループは、クラスターへのネットワークアクセスをコントロールするファイアウォールのように動作します。デフォルトでは、クラスターへのネットワークアクセスはオフになっています。アプリケーションからクラスターにアクセスできるようにするには、特定の Amazon EC2 セキュリティグループのホストからのアクセスを明示的に有効にする必要があります。進入ルールの設定後、同じルールがそのセキュリティグループに関連するすべてのクラスターに適用されます。

クラスターへのネットワークアクセスを許可するには、まずセキュリティグループを作成します。AuthorizeCacheSecurityGroupIngress API アクションまたは authorize-cache-security-group-ingress AWS CLI コマンドを使用して、目的の Amazon EC2 セキュリティグループを承認します。その結果、許可される Amazon EC2 インスタンスが指定されます。セキュリティグループは、作成時にクラスターに関連付けるか、ElastiCache マネジメントコンソールまたは ModifyCacheCluster または (modify-cache-cluster) ElastiCache 用 AWS CLI のコマンド を使用します。

重要

IP レンジベースのアクセスコントロールは現在、クラスターでは有効になっていません。クラスターのすべてのクライアントは、Amazon EC2 ネットワーク内にある必要があり、前に説明したように、セキュリティグループによって許可されている必要があります。

セキュリティグループの詳細については、セキュリティグループ: EC2-Classic を参照してください。

ElastiCache サブネットグループ

サブネットグループは、Amazon Virtual Private Cloud (Amazon VPC) 環境で実行しているクラスターに対して指定できるサブネット (通常はプライベート) の集合です。

Amazon VPC でクラスターを作成する場合は、キャッシュサブネットグループを指定する必要があります。ElastiCache はそのキャッシュサブネットグループを使用して、そのサブネット内でキャッシュノードに関連付けるサブネットおよび IP アドレスを選択します。

Amazon VPC 環境でのキャッシュサブネットグループの使用方法の詳細については、以下を参照してください。

Redis 用 ElastiCache バックアップ

バックアップは、Redis クラスターのポイントインタイムコピーです。バックアップは、既存のクラスターを復元するか、または新しいクラスターをシードするのに使用できます。バックアップは、クラスターのすべてのデータといくつかのメタデータで構成されます。

クラスターで実行されている Redis のバージョンによって、バックアッププロセスが成功するためには、異なる予約メモリの量が必要になります。詳細については、以下を参照してください。

ElastiCache イベント

重要なイベントがキャッシュクラスター上で発生すると、ElastiCache から特定の Amazon SNS トピックに通知が送信されます。重要なイベントには、ノードの追加の失敗、ノードの追加の成功、セキュリティグループの変更などが含まれます。主要イベントをモニタリングすることで、クラスターの現在の状態を知り、イベントに基づいて是正措置を取ることができます。

ElastiCache イベントの詳細については、「ElastiCache イベントのモニタリング」を参照してください。