メニュー
Amazon ElastiCache
ユーザーガイド (API Version 2015-02-02)

要件を特定する [毎回]

クラスターまたはレプリケーショングループを作成する前に、必ずクラスターの要件を特定して、クラスターまたはレプリケーショングループの作成時にビジネスニーズを満たし、作成し直す必要がないようにする必要があります。

メモリとプロセッサの要件

Amazon ElastiCache の基本的な構成要素はノードです。ノードは単体で構成される場合と、グループで構成されてクラスターを形成する場合があります。クラスターに使用するノードタイプを決定するときは、クラスターのノード構成および保存する必要があるデータの量を考慮する必要があります。

Memcached エンジンはマルチスレッドであるため、ノードのコア数がクラスターで利用可能な処理能力に影響します。一方、Redis エンジンはシングルスレッドであるため、ノードのコア数は関係がありません。

Memcached クラスターの構成

Memcached クラスターは 1 から 20 のノードで構成されます。Memcached クラスター内のデータは、クラスター内のすべてのノード間で分割されます。アプリケーションは、エンドポイントと呼ばれるネットワークアドレスを使用して Memcached クラスターに接続します。Memcached クラスター内の各ノードには固有のエンドポイントがあり、アプリケーションはこれを使用して特定のノードに対して読み取りと書き込みを行うことができます。ノードエンドポイントに加え、Memcached クラスター自体には設定エンドポイントと呼ばれるエンドポイントがあり、アプリケーションはこれを使用してクラスターに対して読み取りおよび書き込みを行うことができます。読み取りまたは書き込み対象のノードの決定は、自動検出により実行されます。

Redis Cluster の構成

Redis 用 Amazon ElastiCache クラスターでは、さまざまなノード構成が提供されます。Redis 用 ElastiCache エンジンを実行している場合、3 つのノード構成が可能です。アプリケーションは、エンドポイントと呼ばれるネットワークアドレスを使用して Redis 用 ElastiCache クラスターに接続します。Redis 用 ElastiCache クラスターの構成に応じて、エンドポイントの使用方法は異なります。

  • 単一ノード

    最も単純な構成は、単一ノードクラスターです。単一ノード Redis クラスター内のノードには、すべてのインメモリデータを格納できる十分なメモリとオーバーヘッドが必要です。単一ノード Redis クラスターでは、複数のノード間に渡るレプリケーションは行われないため、高可用性は提供されません。

  • 単一シャードの複数ノード

    単一シャード構成では、最大 6 個のノード (読み取り/書き込みプライマリノードと最大 5 個の読み取り専用レプリカノード) が 1 つのクラスターにグループ化されます。単一ノード構成と同様に、各ノードはすべてのインメモリデータを格納できる必要があり、さらにオーバーヘッドが必要です。1 つまたは複数のレプリカノードの構成では、インメモリデータがシャード内のすべてのノードに渡ってレプリケートされるため、高可用性が提供されます。したがって、1 つのノードに障害が発生しても、1 つまたは複数のレプリカノードのデータを使用できます。

  • 複数シャードの複数ノード

    複数シャード構成では、データがクラスター内の最大 20 個のシャードに渡って分割されます。各シャードには、読み取り/書き込みプライマリノードと最大 5 個の読み取り専用レプリカノードが含まれます。インメモリデータは複数のシャードに渡って分割されるため、シャード内の各ノードは、シャードに割り当てられたインメモリデータの一部のコピーを格納できる十分なメモリとオーバーヘッドのみが必要です。1 つまたは複数のレプリカノードを持つシャード構成では、インメモリデータがシャード内のすべてのノードに渡ってレプリケートされるため、高可用性が提供されます。したがって、1 つのノードに障害が発生しても、1 つまたは複数のレプリカノードのシャードのデータを使用できます。

詳細については、このガイドの「ノードサイズの選択」を参照してください。

スケーリングの要件

すべてのクラスターは、新しい大きなノードタイプの新規クラスターを作成することでスケールアップすることができます。Memcached クラスターをスケールアップすると、新しいクラスターは空の状態で開始されます。Redis クラスターをスケールアップするときに新しいクラスターに古いクラスタのデータをシードできるため、新しいクラスターの使用を開始する際にはクラスターにデータが含まれています。

Memcached と Redis の複数シャードクラスターは、スケールアウトまたはスケールインが可能です。Memcached クラスターをスケールアウトまたはスケールインするには、単純にクラスターにノードを追加したり、クラスターからノードを削除します。自動検出を有効にし、アプリケーションがクラスターの設定エンドポイントに接続している場合は、ノードの追加または削除時にアプリケーションに変更を加える必要はありません。

Redis の複数シャードクラスターをスケーリングするには、クラスターにシャードを追加したり、クラスターからシャードを削除したりします。アプリケーションがクラスターの設定エンドポイントに接続している場合は、シャードの追加または削除時にアプリケーションに変更を加える必要はありません。

詳細については、このガイドの「スケーリング」を参照してください。

フェイルオーバーの要件

ビジネスにおけるクラスターのデータへのアクセスの重要度に応じて、クラスター上の自動フェイルオーバーを有効にします。自動フェイルオーバーを有効にすると、Redis プライマリノードが何らかの理由で停止した場合は、シャードのいずれかの読み取り専用レプリカノードがプライマリに昇格します。自動フェイルオーバーが有効ではない場合にプライマリに障害が発生すると、Redis 用 ElastiCache は新しいノードを起動し、プライマリのロールを割り当てます。このオペレーションには、レプリカノードへのフェイルオーバーよりかなり多くの時間を必要とします。

自動フェイルオーバーは、複数のノードを持ち、Redis エンジンを実行しているクラスターでのみ利用できます。

詳細については、このガイドの「レプリケーション: 自動フェイルオーバーとマルチ AZ (Redis)」を参照してください。

アクセスの要件

設計上、Amazon ElastiCache は Amazon EC2 インスタンスからアクセスします。ElastiCache クラスターへのネットワークアクセスは、クラスターを作成したユーザーアカウントに制限されます。したがって、Amazon EC2 インスタンスからクラスターに接続するには、Amazon EC2 インスタンスにクラスターへのアクセスを許可する必要があります。これを行う手順は、EC2-VPC で起動したか、または EC2-Classic で起動したかによって異なります。

クラスターを EC2-VPC で起動した場合、クラスターにネットワーク進入を許可する必要があります。クラスターを EC2-Classic で起動した場合、インスタンスに関連付けられた Amazon Elastic Compute Cloud セキュリティグループに、ElastiCache セキュリティグループへのアクセスを許可する必要があります。詳細な手順については、このガイドの「ステップ 4: アクセスを許可する」を参照してください。

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

Amazon ElastiCache では、すべての AWS リージョンがサポートされます。アプリケーションに近い場所のリージョンに ElastiCache クラスターを配置することで、レイテンシーを低減できます。クラスターに複数のノードがある場合、複数の異なるアベイラビリティーゾーンにノードを配置することで、クラスター上の障害の影響を低減できます。

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