

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# ElastiCache でのクラスターの管理
<a name="Clusters"></a>

*クラスター*は、1 つ以上のキャッシュノードの集合であり、すべてのノードが Valkey、Memcached、および Redis OSS のエンジンソフトウェアのインスタンスを実行します。クラスターを作成する際に、すべてのノードで使用するエンジンとバージョンを指定します。

**Valkey クラスターと Redis OSS クラスター**

次の図は、一般的な Valkey または Redis OSS クラスターを示しています。これらのクラスターは、シャード (API/CLI: ノードグループ) 内に 1 個から最大 6 個までのノードを含めることができます。単一ノードの Valkey または Redis OSS (クラスターモードが無効) クラスターはシャードを持たず、マルチノードの Valkey または Redis OSS (クラスターモードが無効) クラスターは 1 個のシャードを持ちます。Valkey または Redis OSS (クラスターモード有効) クラスターは、最大 500 個のシャードを持つことができ、データはシャード間で分割されます。エンジンバージョンが Valkey 7.2 以上、または Redis OSS 5.0.6 以上の場合、ノードまたはシャードの制限は、クラスターごとに最大 500 個まで増やすことができます。例えば、83 個のシャード (シャードごとに 1 つのプライマリと 5 レプリカ) と 500 個のシャード (プライマリのみでレプリカなし) の範囲で、500 個のノードクラスターを設定できます。増加に対応できる十分な IP アドレスがあることを確認してください。一般的な落とし穴として、サブネットグループ内のサブネットの CIDR 範囲が小さすぎる、またはサブネットが他のクラスターで共有され、頻繁に使用されていることが挙げられます。詳細については、「[サブネットグループの作成](SubnetGroups.Creating.md)」を参照してください。5.0.6 未満のバージョンの場合、クラスターあたりの制限は 250 個です。

この制限の拡大をリクエストするには、「[AWS のサービスの制限](https://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html)」を参照し、制限タイプとして [**Nodes per cluster per instance type (インスタンスタイプごとのクラスターあたりのノード)**] を選択します。

 Valkey または Redis OSS シャードに複数のノードがある場合、1 つのノードは読み取り/書き込みのプライマリノードです。シャード内の他のすべてのノードは、読み取り専用のレプリカです。

一般的な Valkey または Redis OSS クラスターは次のようになります。

![\[イメージ: 一般的な Valkey クラスターと Redis OSS クラスター\]](http://docs.aws.amazon.com/ja_jp/AmazonElastiCache/latest/dg/images/ElastiCache-Cluster-Redis.png)


**Memcached クラスター**

一般的な Memcached クラスターは次のようになります。Memcached クラスターには 1〜60 個のノードがあり、これらのノード間でデータを水平に分割することができます。

![\[イメージ: 一般的な Memcached クラスター\]](http://docs.aws.amazon.com/ja_jp/AmazonElastiCache/latest/dg/images/ElastiCache-Cluster-Memcached.png)


**Valkey、Memcached、および Redis OSS の ElastiCache オペレーション**

ElastiCache の多くのオペレーションは、クラスターレベルで実行されます。クラスターは、特定数のキャッシュノードと、各ノードのプロパティを制御するパラメータグループを使用して設定できます。クラスター内のすべてのノードは、同じノードタイプで、同一のパラメーター設定およびセキュリティグループ設定となるように設計されています。

すべてのクラスターにはクラスター識別子が必要です。クラスター識別子は、お客様が指定するクラスターの名前です。この識別子によって、ElastiCache API と AWS CLI コマンドを使用して操作するときに、特定のクラスターを指定します。クラスター識別子は、AWS リージョン内でお客様別に一意である必要があります。

ElastiCache は複数のエンジンバージョンをサポートします。特別な理由がない限り、最新バージョンを使用することをお勧めします。

ElastiCache クラスターは Amazon EC2 インスタンスを使用してアクセスするように設計されています。Amazon VPC サービスに基づいて Virtual Private Cloud (VPC) で起動したクラスターには、AWS の外部からアクセスできます。詳細については、「[外部から ElastiCache リソースにアクセスするAWS](accessing-elasticache.md#access-from-outside-aws)」を参照してください。

サポートされているバージョンのリストについては、「[サポートされているエンジンとバージョン](VersionManagement.md#supported-engine-versions)」、「[サポートされる Redis OSS エンジンのバージョン](engine-versions.md#supported-engine-versions.redis)」、「[サポートされている ElastiCache for Memcached バージョン](engine-versions.md#supported-engine-versions-mc)」を参照してください。

# ElastiCache でネットワークタイプを選択する
<a name="network-type"></a>

ElastiCache はインターネットプロトコルバージョン 4 と 6 (IPv4 と IPv6) をサポートしているため、クラスターが以下を受け入れるように設定できます。
+ IPv4 接続のみ、
+ IPv6 接続のみ、
+ IPv4 と IPv6 の両方の接続 (デュアルスタック)

IPv6 は、[Nitro システム](https://aws.amazon.com/ec2/nitro/)上に構築されたすべてのインスタンスで、Valkey 7.2 以降、または Redis OSS 6.2 以降を使用するワークロードでサポートされています。IPv6 を使用して ElastiCache にアクセスする場合、追加料金はかかりません。

**注記**  
IPV6/デュアルスタックが使用可能になる前に作成されたクラスターの移行はサポートされていません。新しく作成されたクラスターのネットワークタイプの切り替えもサポートされていません。

IPv6 は、[Nitro システム](https://aws.amazon.com/ec2/nitro/)上に構築されたすべてのインスタンスで Memcached 1.6.6 以降を使用するワークロードでサポートされています。IPv6 を使用して ElastiCache にアクセスする場合、追加料金はかかりません。

## ネットワークタイプのサブネットの設定
<a name="network-type-subnets"></a>

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

## デュアルスタックの使用
<a name="network-type-dual-stack"></a>

クラスターモードを有効にして ElastiCache for Redis OSS を使用する場合、アプリケーションの観点から見ると、設定エンドポイントを介してすべてのクラスターノードに接続することは、個々のキャッシュノードに直接接続することと違いがありません。これを実現するには、クラスター対応クライアントはクラスター検出プロセスを実行し、すべてのノードの設定情報をリクエストする必要があります。Redis の検出プロトコルは、ノードごとに 1 つの IP のみをサポートします。

ElastiCache for Memcachedand でクラスターを作成し、ネットワークタイプとしてデュアルスタックを選択する場合、IP 検出タイプ (IPv4 または IPv6) を指定する必要があります。ElastiCache はネットワークタイプと IP 検出をデフォルトで IPv6 に設定しますが、これは変更できます。自動検出を使用する場合、選択した IP タイプの IP アドレスのみが Memcached クライアントに返されます。詳細については、「[クラスター (Memcached) 内のノードを自動的に識別する](AutoDiscovery.md)」を参照してください。

既存のすべてのクライアントとの下位互換性を維持するために、IP 検出が導入され、これにより、検出プロトコルでアドバタイズする IP タイプ (IPv4 または IPv6 など) を選択できます。これにより、自動検出は 1 つの IP タイプのみに制限されますが、デュアルスタックは、ダウンタイムなしで IPv4 から IPv6 検出 IP タイプへの移行 (またはロールバック) が可能になるため、クラスターモードが有効なワークロードに引き続き有益です。

## TLS が有効なデュアルスタック ElastiCache クラスター
<a name="configuring-tls-enabled-dual-stack"></a>

ElastiCache クラスターで TLS が有効になっている場合、クラスター検出関数 (Valkey または Redis OSS の場合は `cluster slots`、`cluster shards`、`cluster nodes`、Memcached の場合は `config get cluster` など) は IP ではなくホスト名を返します。次に、IP の代わりにホスト名を使用して ElastiCache クラスターに接続し、TLS ハンドシェイクを実行します。つまり、クライアントは IP 検出パラメータの影響を受けません。*TLS が有効なクラスターでは、IP 検出パラメータは優先 IP プロトコルに影響しません。*代わりに、使用する IP プロトコルは、DNS ホスト名を解決する際にクライアントがどの IP プロトコルを使用するかによって決まります。

DNS ホスト名を解決する際に IP プロトコルプリファレンスを設定する方法の例については、[TLS が有効なデュアルスタック ElastiCache クラスター](BestPractices.md#network-type-configuring-tls-enabled-dual-stack) を参照してください。

## AWS マネジメントコンソール(Valkey および Redis OSS) の使用
<a name="network-type-console"></a>

を使用してクラスターを作成する場合AWS マネジメントコンソール、**接続**で、**IPv4**、**IPv6**、または**デュアルスタック**のいずれかのネットワークタイプを選択します。Valkey または Redis OSS (クラスターモード有効) クラスターを作成していて、デュアルスタックを選択する場合は、**[IP タイプを検出]** (IPv6 または IPv4) を選択する必要があります。

詳細については、[Valkey または Redis OSS (クラスターモードが有効) クラスターの作成 (コンソール)](Clusters.Create.md#Clusters.Create.CON.RedisCluster)または[Valkey または Redis OSS (クラスターモードが無効) クラスターの作成 (コンソール)](Clusters.Create.md#Clusters.Create.CON.Redis)を参照してください。

を使用してレプリケーショングループを作成するときはAWS マネジメントコンソール、**IPv4**、**IPv6**、または**デュアルスタック**のいずれかのネットワークタイプを選択します。デュアルスタックを選択した場合は、**[Discovery IP type]** (検出 IP タイプ) (IPv6 または IPv4) を選択する必要があります。

詳細については、[Valkey または Redis OSS (クラスターモードが無効) レプリケーショングループを最初から作成する](Replication.CreatingReplGroup.NoExistingCluster.Classic.md)または[Valkey または Redis OSS (クラスターモードが有効) でレプリケーショングループを最初から作成する](Replication.CreatingReplGroup.NoExistingCluster.Cluster.md)を参照してください。

## AWS マネジメントコンソール(Memcached) の使用
<a name="network-type-console-mem"></a>

を使用してクラスターを作成する場合AWS マネジメントコンソール、**接続**で、**IPv4**、**IPv6**、または**デュアルスタック**のいずれかのネットワークタイプを選択します。デュアルスタックを選択した場合は、**[Discovery IP type]** (検出 IP タイプ) (IPv6 または IPv4) を選択する必要があります。

詳細については、「[Memcached クラスター (CLI) の作成 (コンソール)](Clusters.Create-mc.md#Clusters.Create.CON.Memcached)」を参照してください。

## Valkey、Memcached、Redis OSS での CLI の使用。
<a name="network-type-cli"></a>

**Redis OSS**

CLI を使用して Valkey または Redis OSS でクラスターを作成する場合、[create-cache-cluster](https://docs.aws.amazon.com/cli/latest/reference/elasticache/create-cache-cluster.html) コマンドを使用して、`NetworkType` パラメータおよび `IPDiscovery` パラメータを指定します。

Linux、macOS、Unix の場合:

```
aws elasticache create-cache-cluster \
    --cache-cluster-id "cluster-test" \
    --engine redis \
    --cache-node-type cache.m5.large \
    --num-cache-nodes 1 \
    --network-type dual_stack \
    --ip-discovery ipv4
```

Windows の場合:

```
aws elasticache create-cache-cluster ^
    --cache-cluster-id "cluster-test" ^
    --engine redis ^
    --cache-node-type cache.m5.large ^
    --num-cache-nodes 1 ^
    --network-type dual_stack ^
    --ip-discovery ipv4
```

CLI を使用してクラスターモードを無効にしてレプリケーショングループを作成する場合は、[create-replication-group](https://docs.aws.amazon.com/cli/latest/reference/elasticache/create-replication-group.html) コマンドを使用して `NetworkType` および `IPDiscovery` パラメータを指定します。

Linux、macOS、Unix の場合:

```
aws elasticache create-replication-group \
   --replication-group-id sample-repl-group \
   --replication-group-description "demo cluster with replicas" \
   --num-cache-clusters 3 \
   --primary-cluster-id redis01 \
   --network-type dual_stack \
   --ip-discovery ipv4
```

Windows の場合:

```
aws elasticache create-replication-group ^
   --replication-group-id sample-repl-group ^
   --replication-group-description "demo cluster with replicas" ^
   --num-cache-clusters 3 ^
   --primary-cluster-id redis01 ^
   --network-type dual_stack ^
   --ip-discovery ipv4
```

クラスターモードを有効にしてレプリケーショングループを作成し、CLI を使用する IP 検出に IPv4 を使用する場合は、[create-replication-group](https://docs.aws.amazon.com/cli/latest/reference/elasticache/create-replication-group.html) コマンドを使用して `NetworkType` および `IPDiscovery` パラメータを指定します。

Linux、macOS、Unix の場合:

```
aws elasticache create-replication-group \
  --replication-group-id demo-cluster \
  --replication-group-description "demo cluster" \
  --cache-node-type cache.m5.large \
  --num-node-groups 2 \
  --engine redis \
  --cache-subnet-group-name xyz \
  --network-type dual_stack \
  --ip-discovery ipv4 \
  --region us-east-1
```

Windows の場合:

```
aws elasticache create-replication-group ^
  --replication-group-id demo-cluster ^
  --replication-group-description "demo cluster" ^
  --cache-node-type cache.m5.large ^
  --num-node-groups 2 ^
  --engine redis ^
  --cache-subnet-group-name xyz ^
  --network-type dual_stack ^
  --ip-discovery ipv4 ^
  --region us-east-1
```

クラスターモードを有効にしてレプリケーショングループを作成し、CLI を使用する IP 検出に IPv6 を使用する場合は、[create-replication-group](https://docs.aws.amazon.com/cli/latest/reference/elasticache/create-replication-group.html) コマンドを使用して `NetworkType` および `IPDiscovery` パラメータを指定します。

Linux、macOS、Unix の場合:

```
aws elasticache create-replication-group \
  --replication-group-id demo-cluster \
  --replication-group-description "demo cluster" \
  --cache-node-type cache.m5.large \
  --num-node-groups 2 \
  --engine redis \
  --cache-subnet-group-name xyz \
  --network-type dual_stack \
  --ip-discovery ipv6 \
  --region us-east-1
```

Windows の場合:

```
aws elasticache create-replication-group ^
  --replication-group-id demo-cluster ^
  --replication-group-description "demo cluster" ^
  --cache-node-type cache.m5.large ^
  --num-node-groups 2 ^
  --engine redis ^
  --cache-subnet-group-name xyz ^
  --network-type dual_stack ^
  --ip-discovery ipv6 ^
  --region us-east-1
```

**Memcached**

CLI を使用して Memcached でクラスターを作成する場合、[create-cache-cluster](https://docs.aws.amazon.com/cli/latest/reference/elasticache/create-cache-cluster.html) コマンドを使用して、`NetworkType` パラメータおよび `IPDiscovery` パラメータを指定します。

Linux、macOS、Unix の場合:

```
aws elasticache create-cache-cluster \
    --cache-cluster-id "cluster-test" \
    --engine memcached \
    --cache-node-type cache.m5.large \
    --num-cache-nodes 1 \
    --network-type dual_stack \
    --ip-discovery ipv4
```

Windows の場合:

```
aws elasticache create-cache-cluster ^
    --cache-cluster-id "cluster-test" ^
    --engine memcached ^
    --cache-node-type cache.m5.large ^
    --num-cache-nodes 1 ^
    --network-type dual_stack ^
    --ip-discovery ipv4
```

# クラスター (Memcached) 内のノードを自動的に識別する
<a name="AutoDiscovery"></a>

Memcached エンジンを実行しているクラスターの場合、ElastiCache は*自動検出*をサポートします。自動検出とは、クライアントプログラムがクラスター内のすべてのノードを自動的に識別し、これらすべてのノードへの接続を開始および維持する機能です。

**注記**  
自動検出は、Amazon ElastiCache Memcached で実行されているクラスターに追加されます。自動検出は、Valkey または Redis OSS エンジンでは使用できません。

自動検出によって、アプリケーションは手動で個々のキャッシュノードに接続する必要はありません。その代わり、アプリケーションは Memcached のノードの 1 つに接続してノードのリストを取得します。そのリストからアプリケーションはクラスターの残りのノードを発見して、それらにも接続できます。アプリケーションで個々のキャッシュノードエンドポイントをハードコードする必要はありません。

クラスターでデュアルスタックネットワークタイプを使用している場合、自動検出は、どちらを選択するかに応じて、IPv4 または IPv6 アドレスのみを返します。詳細については、「[ElastiCache でネットワークタイプを選択する](network-type.md)」を参照してください。

クラスター内のすべてのキャッシュノードには、他のすべてのノードに関するメタデータのリストが保持されます。このメタデータは、クラスターにノードが追加または削除されるたびに更新されます。

**Topics**
+ [Memcached による自動検出の利点](AutoDiscovery.Benefits.md)
+ [自動検出の動作](AutoDiscovery.HowAutoDiscoveryWorks.md)
+ [自動検出の使用](AutoDiscovery.Using.md)
+ [Memcached キャッシュノードへの手動接続](AutoDiscovery.Manual.md)
+ [Memcached クライアントライブラリへの自動検出の追加](AutoDiscovery.AddingToYourClientLibrary.md)
+ [自動検出機能を持つ ElastiCache クライアント](Clients.md)

# Memcached による自動検出の利点
<a name="AutoDiscovery.Benefits"></a>

Memcached を使用する場合、自動検出には次の利点があります。
+ クラスター内のノード数を増やすと、新しいノードは、設定エンドポイントと他のすべてのノードに自身を登録します。キャッシュクラスターからノードを削除すると、削除対象のノードが自身の登録を解除します。いずれの場合も、クラスター内の他のすべてのノードが、最新のキャッシュノードメタデータで更新されます。
+ キャッシュノードの障害は自動的に検出されます。障害が発生したノードは、自動的に置き換えられます。
**注記**  
ノードの交換が完了するまで、そのノードは正常になりません。
+ クライアントプログラムは、設定エンドポイントにのみ接続する必要があります。その後、自動検出ライブラリはクラスター内の他のすべてのノードに接続します。
+ クライアントプログラムは、1 分に 1 回クラスターをポーリングします (この間隔は必要に応じて調整できます)。クラスター設定の変更がある場合 (新しいノードや削除されたノードなど)、クライアントは更新されたメタデータリストを受け取ります。その後、クライアントは必要に応じてそれらのノードに接続したり、それらのノードから切断したりします。

自動検出は、すべての ElastiCache Memcached クラスターで有効になります。この機能を使用するためにキャッシュノードを再起動する必要はありません。

# 自動検出の動作
<a name="AutoDiscovery.HowAutoDiscoveryWorks"></a>

**Topics**
+ [キャッシュノードへの接続](#AutoDiscovery.HowAutoDiscoveryWorks.Connecting)
+ [通常のクラスターオペレーション](#AutoDiscovery.HowAutoDiscoveryWorks.NormalOps)
+ [その他のオペレーション](#AutoDiscovery.HowAutoDiscoveryWorks.OtherOps)

このセクションでは、クライアントアプリケーションが ElastiCache クラスタークライアントを使用してキャッシュノード接続を管理し、キャッシュ内のデータ項目を操作する方法について説明します。

## キャッシュノードへの接続
<a name="AutoDiscovery.HowAutoDiscoveryWorks.Connecting"></a>

アプリケーションの観点からは、クラスター設定エンドポイントへの接続は、個々のキャッシュノードに直接接続するのと変わりません。次の一連の図は、キャッシュノードに接続するプロセスを示したものです。

![\[キャッシュノードへの接続\]](http://docs.aws.amazon.com/ja_jp/AmazonElastiCache/latest/dg/images/autodiscovery_cluster_membership_refresh-diagram.png)



**キャッシュノードへの接続プロセス**  

|  |  | 
| --- |--- |
|  ![\[1\]](http://docs.aws.amazon.com/ja_jp/AmazonElastiCache/latest/dg/images/callouts/1.png) | アプリケーションは、設定エンドポイントの DNS 名を解決します。設定エンドポイントには、すべてのキャッシュノードの CNAME エントリが保持されているため、DNS 名はいずれかのノードに解決されます。その後、クライアントはそのノードに接続できます。 | 
|  ![\[2\]](http://docs.aws.amazon.com/ja_jp/AmazonElastiCache/latest/dg/images/callouts/2.png) | クライアントは、他のすべてのノードの設定情報をリクエストします。各ノードにはクラスター内のすべてのノードの設定情報が保持されているため、どのノードでも必要に応じて設定情報をクライアントに渡すことができます。 | 
|  ![\[3\]](http://docs.aws.amazon.com/ja_jp/AmazonElastiCache/latest/dg/images/callouts/3.png) | クライアントは、キャッシュノードのホスト名と IP アドレスの最新のリストを受け取ります。その後、クライアントはクラスター内の他のすべてのノードに接続できます。 | 



**注記**  
クライアントプログラムは、キャッシュノードのホスト名と IP アドレスのリストを 1 分に 1 回更新します。このポーリング間隔は、必要に応じて変更できます。

## 通常のクラスターオペレーション
<a name="AutoDiscovery.HowAutoDiscoveryWorks.NormalOps"></a>

アプリケーションがすべてのキャッシュノードに接続されている場合、ElastiCache クラスタークライアントは、個々のデータ項目を格納する必要があるノードと、それらのデータ項目のクエリを実行する必要があるノードを判断します。次の一連の図は、通常のクラスターオペレーションのプロセスを示しています。

![\[通常のクラスターオペレーション\]](http://docs.aws.amazon.com/ja_jp/AmazonElastiCache/latest/dg/images/autodiscovery_normal_cache_usage-diagram.png)



**通常のクラスターオペレーションのプロセス**  

|  |  | 
| --- |--- |
|  ![\[1\]](http://docs.aws.amazon.com/ja_jp/AmazonElastiCache/latest/dg/images/callouts/1.png) | アプリケーションは、特定のデータ項目に対して get リクエストを発行します (キーにより識別されます)。 | 
|  ![\[2\]](http://docs.aws.amazon.com/ja_jp/AmazonElastiCache/latest/dg/images/callouts/2.png) | クライアントは、キーに対してハッシュアルゴリズムを使用して、データ項目が格納されているキャッシュノードを調べます。 | 
|  ![\[3\]](http://docs.aws.amazon.com/ja_jp/AmazonElastiCache/latest/dg/images/callouts/3.png) | データ項目が適切なノードからリクエストされます。 | 
|  ![\[4\]](http://docs.aws.amazon.com/ja_jp/AmazonElastiCache/latest/dg/images/callouts/4.png) | データ項目がアプリケーションに戻ります。 | 

## その他のオペレーション
<a name="AutoDiscovery.HowAutoDiscoveryWorks.OtherOps"></a>

状況によっては、クラスターのノードに変更を加えることがあります。例えば、追加の需要に対応するためにノードを追加したり、需要の減少期間中にコストを節約するためにノードを削除したりできます。または、ある種類のノード障害が原因でノードを置き換えることもできます。

クラスターのエンドポイントへのメタデータ更新を必要とするクラスターを変更するときは、すべてのノードへの変更が同時に行われます。したがって、特定のノードのメタデータと、クラスター内の他のすべてのノードのメタデータの整合性がとられます。

この場合、メタデータは、クラスター内のすべてのノードで同時に更新されるため、すべてのノード間で整合性がとられます。クラスターのさまざまなノードのエンドポイントを取得するため、設定エンドポイントを必ず使用する必要があります。設定エンドポイントを使用して、「非表示」のノードからはエンドポイントデータを取得しないようにしてください。

### ノードの追加
<a name="AutoDiscovery.HowAutoDiscoveryWorks.OtherOps.AddNode"></a>

ノードがスピンアップされている間、エンドポイントはメタデータには含まれません。エンドポイントは、ノードが利用可能となった時点で、クラスターの各ノードのメタデータに追加されます。このシナリオではメタデータはすべてのノード間で整合性がとられ、新しいノードとは、それが利用可能になった後にやり取りできるようになります。ノードが利用可能になる前にはそのノードについては認識できず、新しいノードが存在しないかのようにクラスターのノードとやり取りすることになります。

### ノードの削除
<a name="AutoDiscovery.HowAutoDiscoveryWorks.OtherOps.DelNode"></a>

ノードが削除されるときは、まずエンドポイントがメタデータから削除され、ノードがクラスターから削除されます。このシナリオではメタデータはすべてのノード間で整合性がとられており、ノードが利用できない間、削除されるノードのエンドポイントがメタデータに含まれることはありません。ノードを削除している間、そのノードはメタデータでは報告されないため、アプリケーションはそのノードが存在しないかのように n-1 の残りのノードのみとやり取りします。

### ノードの置換
<a name="AutoDiscovery.HowAutoDiscoveryWorks.OtherOps.ReplaceNode"></a>

ノードに障害が発生した場合、ElastiCache がそのノードを停止し、別のノードを起動します。この置換プロセスは数分かかります。この間、すべてのノードのメタデータには、障害のあるノードに対応するエンドポイントが表示されますが、そのノードとのやり取りの試みは失敗します。そのため、ロジックには必ず再試行ロジックを組み込んでください。

# 自動検出の使用
<a name="AutoDiscovery.Using"></a>

ElastiCache for Memcached で自動検出の使用を開始するには、次のステップを実行します。
+ [設定エンドポイントを取得する](#AutoDiscovery.Using.ConfigEndpoint)
+ [ElastiCache クラスタークライアントをダウンロードする](#AutoDiscovery.Using.ClusterClient)
+ [アプリケーションプログラムを変更する](#AutoDiscovery.Using.ModifyApp)

## 設定エンドポイントを取得する
<a name="AutoDiscovery.Using.ConfigEndpoint"></a>

クラスターに接続するには、クライアントプログラムがクラスター設定エンドポイントを認識している必要があります。トピック「[クラスターのエンドポイントの検索 (コンソール) (Memcached)](Endpoints.md#Endpoints.Find.Memcached)」を参照してください。

`aws elasticache describe-cache-clusters` パラメーターを指定して、`--show-cache-node-info` コマンドを使用することもできます。

クラスターのエンドポイント検索に使用する方法に関係なく、設定エンドポイントのアドレスには、必ず **.cfg** が含まれます。

**Example AWS CLI for ElastiCache を使用したエンドポイントの検索**  
Linux、macOS、Unix の場合:  

```
aws elasticache describe-cache-clusters \
    --cache-cluster-id mycluster \
    --show-cache-node-info
```
Windows の場合:  

```
aws elasticache describe-cache-clusters ^
    --cache-cluster-id mycluster ^
    --show-cache-node-info
```
このオペレーションでは、次のような出力が生成されます (JSON 形式)。  

```
{
    "CacheClusters": [
        {
            "Engine": "memcached", 
            "CacheNodes": [
                {
                    "CacheNodeId": "0001", 
                    "Endpoint": {
                        "Port": 11211, 
                        "Address": "mycluster.fnjyzo.cfg.0001.use1.cache.amazonaws.com"
                    }, 
                    "CacheNodeStatus": "available", 
                    "ParameterGroupStatus": "in-sync", 
                    "CacheNodeCreateTime": "2016-10-12T21:39:28.001Z", 
                    "CustomerAvailabilityZone": "us-east-1e"
                }, 
                {
                    "CacheNodeId": "0002", 
                    "Endpoint": {
                        "Port": 11211, 
                        "Address": "mycluster.fnjyzo.cfg.0002.use1.cache.amazonaws.com"
                    }, 
                    "CacheNodeStatus": "available", 
                    "ParameterGroupStatus": "in-sync", 
                    "CacheNodeCreateTime": "2016-10-12T21:39:28.001Z", 
                    "CustomerAvailabilityZone": "us-east-1a"
                }
            ], 
            "CacheParameterGroup": {
                "CacheNodeIdsToReboot": [], 
                "CacheParameterGroupName": "default.memcached1.4", 
                "ParameterApplyStatus": "in-sync"
            }, 
            "CacheClusterId": "mycluster", 
            "PreferredAvailabilityZone": "Multiple", 
            "ConfigurationEndpoint": {
                "Port": 11211, 
                "Address": "mycluster.fnjyzo.cfg.use1.cache.amazonaws.com"
            }, 
            "CacheSecurityGroups": [], 
            "CacheClusterCreateTime": "2016-10-12T21:39:28.001Z", 
            "AutoMinorVersionUpgrade": true, 
            "CacheClusterStatus": "available", 
            "NumCacheNodes": 2, 
            "ClientDownloadLandingPage": "https://console.aws.amazon.com/elasticache/home#client-download:", 
            "CacheSubnetGroupName": "default", 
            "EngineVersion": "1.4.24", 
            "PendingModifiedValues": {}, 
            "PreferredMaintenanceWindow": "sat:06:00-sat:07:00", 
            "CacheNodeType": "cache.r3.large"
        }
    ]
}
```

## ElastiCache クラスタークライアントをダウンロードする
<a name="AutoDiscovery.Using.ClusterClient"></a>

自動検出を利用するには、クライアントプログラムが *ElastiCache クラスタークライアント*を使用する必要があります。ElastiCache Cluster Client は、Java、PHP、および .NET 向けが用意されており、すべてのキャッシュノードを検出して接続するのに必要なロジックすべてが含まれています。

**ElastiCache クラスタークライアントをダウンロードするには**

1. AWS マネジメントコンソールにサインインして、Amazon ElastiCache コンソール ([https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/)) を開きます。

1. ElastiCache コンソールで、[**ElastiCache Cluster Client**] を選択して [**Download**] を選択します。

Java 向けの ElastiCache クラスタークライアントのソースコードは、[https://github.com/amazonwebservices/aws-elasticache-cluster-client-memcached-for-java](https://github.com/amazonwebservices/aws-elasticache-cluster-client-memcached-for-java) で入手できます。このライブラリは、広く使用されている Spymemcached クライアントがベースとなっています。ElastiCache クラスタークライアントは、Amazon ソフトウェアライセンス [https://aws.amazon.com/asl](https://aws.amazon.com/asl) の下でリリースされています。ソースコードは必要に合わせて自由に変更できます。他のオープンソース Memcached ライブラリや独自のクライアントコードにコードを組み込むこともできます。

**注記**  
PHP 向けの ElastiCache クラスタークライアントを使用するには、まず Amazon EC2 インスタンスにインストールする必要があります。詳細については、「[ElastiCache Cluster Client for PHP のインストール](Appendix.PHPAutoDiscoverySetup.md)」を参照してください。  
TLS がサポートされているクライアントの場合は、PHP バージョン 7.4 以上のバイナリをダウンロードします。  
.NET 向けの ElastiCache Cluster Client を使用するには、まず Amazon EC2 インスタンスにインストールする必要があります。詳細については、「[ElastiCache Cluster Client for .NET のインストール](Appendix.DotNETAutoDiscoverySetup.md)」を参照してください。

## アプリケーションプログラムを変更する
<a name="AutoDiscovery.Using.ModifyApp"></a>

自動検出を使用するようにアプリケーションプログラムを変更する準備ができました。以下のセクションでは、Java、PHP、および .NET 向けの ElastiCache Cluster Client を使用する方法を示します。

**重要**  
クラスターの設定エンドポイントを指定する際は必ず、ここに示す設定エンドポイントのアドレスに「.cfg」が含まれていることを確認してください。「.cfg」のない CNAME またはエンドポイントは使用しないでください。  

```
"mycluster.fnjyzo.cfg.use1.cache.amazonaws.com";
```
 クラスターの設定エンドポイントを明示的に指定しない場合は、特定のノードが設定されます。

# Java 向けの ElastiCache クラスタークライアントの使用
<a name="AutoDiscovery.Using.ModifyApp.Java"></a>

以下のプログラムは、ElastiCache クラスタークライアントを使用してクラスター設定エンドポイントに接続し、キャッシュにデータ項目を追加する方法を示しています。さらに操作を行わなくても、プログラムは自動検出を使用してクラスター内のすべてのノードに接続します。

```
package com.amazon.elasticache;

import java.io.IOException;
import java.net.InetSocketAddress;

// Import the &AWS;-provided library with Auto Discovery support 
import net.spy.memcached.MemcachedClient;  

public class AutoDiscoveryDemo {

    public static void main(String[] args) throws IOException {
            
        String configEndpoint = "mycluster.fnjyzo.cfg.use1.cache.amazonaws.com";
        Integer clusterPort = 11211;

        MemcachedClient client = new MemcachedClient(
                                 new InetSocketAddress(configEndpoint, 
                                                       clusterPort));       
        // The client will connect to the other cache nodes automatically.

        // Store a data item for an hour.  
        // The client will decide which cache host will store this item. 
        client.set("theKey", 3600, "This is the data value");
    }
}
```

# PHP 向けの ElastiCache クラスタークライアントの使用
<a name="AutoDiscovery.Using.ModifyApp.PHP"></a>

以下のプログラムは、ElastiCache クラスタークライアントを使用してクラスター設定エンドポイントに接続し、キャッシュにデータ項目を追加する方法を示しています。さらに操作を行わなくても、プログラムは自動検出を使用してクラスター内のすべてのノードに接続します。

PHP 向けの ElastiCache クラスタークライアントを使用するには、まず Amazon EC2 インスタンスにインストールする必要があります。詳細については、[ElastiCache Cluster Client for PHP のインストール](Appendix.PHPAutoDiscoverySetup.md)を参照してください。

```
<?php
	
 /**
  * Sample PHP code to show how to integrate with the Amazon ElastiCache
  * Auto Discovery feature.
  */

  /* Configuration endpoint to use to initialize memcached client. 
   * This is only an example. 	*/
  $server_endpoint = "mycluster.fnjyzo.cfg.use1.cache.amazonaws.com";
  
  /* Port for connecting to the ElastiCache cluster. 
   * This is only an example 	*/
  $server_port = 11211;

 /**
  * The following will initialize a Memcached client to utilize the Auto Discovery feature.
  * 
  * By configuring the client with the Dynamic client mode with single endpoint, the
  * client will periodically use the configuration endpoint to retrieve the current cache
  * cluster configuration. This allows scaling the cluster up or down in number of nodes
  * without requiring any changes to the PHP application. 
  *
  * By default the Memcached instances are destroyed at the end of the request. 
  * To create an instance that persists between requests, 
  *    use persistent_id to specify a unique ID for the instance. 
  * All instances created with the same persistent_id will share the same connection. 
  * See [http://php.net/manual/en/memcached.construct.php](http://php.net/manual/en/memcached.construct.php) for more information.
  */
  $dynamic_client = new Memcached('persistent-id');
  $dynamic_client->setOption(Memcached::OPT_CLIENT_MODE, Memcached::DYNAMIC_CLIENT_MODE);
  $dynamic_client->addServer($server_endpoint, $server_port);
  
  /**
  * Store the data for 60 seconds in the cluster. 
  * The client will decide which cache host will store this item.
  */  
  $dynamic_client->set('key', 'value', 60);  


 /**
  * Configuring the client with Static client mode disables the usage of Auto Discovery
  * and the client operates as it did before the introduction of Auto Discovery. 
  * The user can then add a list of server endpoints.
  */
  $static_client = new Memcached('persistent-id');
  $static_client->setOption(Memcached::OPT_CLIENT_MODE, Memcached::STATIC_CLIENT_MODE);
  $static_client->addServer($server_endpoint, $server_port);

 /**
  * Store the data without expiration. 
  * The client will decide which cache host will store this item.
  */  
  $static_client->set('key', 'value');  
  ?>
```

TLS を有効にして ElastiCache Cluster Client を使用する方法の例については、「[Using in transit encryption with PHP and Memcached](in-transit-encryption.md#in-transit-encryption-connect-php-mc)」を参照してください。

# ElastiCache Cluster Client for .NET の使用
<a name="AutoDiscovery.Using.ModifyApp.DotNET"></a>

**注記**  
ElastiCache .NET Cluster Client は 2022 年 5 月に廃止されました。

ElastiCache の .NET クライアントは、オープンソースとして [https://github.com/awslabs/elasticache-cluster-config-net](https://github.com/awslabs/elasticache-cluster-config-net) から入手できます。

 .NET アプリケーションは、通常、config ファイルから設定を取得します。サンプルアプリケーションの config ファイルを以下に示します。

```
<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <configSections>
        <section 
            name="clusterclient" 
            type="Amazon.ElastiCacheCluster.ClusterConfigSettings, Amazon.ElastiCacheCluster" />
    </configSections>

    <clusterclient>
        <!-- the hostname and port values are from step 1 above -->
        <endpoint hostname="mycluster.fnjyzo.cfg.use1.cache.amazonaws.com" port="11211" />
    </clusterclient>
</configuration>
```

以下の C\$1 プログラムは、ElastiCache Cluster Client を使用してクラスター設定エンドポイントに接続し、キャッシュにデータ項目を追加する方法を示しています。さらに操作を行わなくても、プログラムは自動検出を使用してクラスター内のすべてのノードに接続します。

```
// *****************
// Sample C# code to show how to integrate with the Amazon ElastiCcache Auto Discovery feature.

using System;

using Amazon.ElastiCacheCluster;

using Enyim.Caching;
using Enyim.Caching.Memcached;

public class DotNetAutoDiscoveryDemo  {

    public static void Main(String[] args)  {
    
        // instantiate a new client.
        ElastiCacheClusterConfig config = new ElastiCacheClusterConfig();
        MemcachedClient memClient = new MemcachedClient(config);
        
        // Store the data for 3600 seconds (1hour) in the cluster. 
        // The client will decide which cache host will store this item.
        memClient.Store(StoreMode.Set, 3600, "This is the data value.");
        
    }  // end Main
    
}  // end class DotNetAutoDiscoverDemo
```

# Memcached キャッシュノードへの手動接続
<a name="AutoDiscovery.Manual"></a>

クライアントプログラムが自動検出を使用していない場合、各 Memcached キャッシュノードに手動で接続できます。これは、Memcached クライアントのデフォルトの動作です。

キャッシュノードのホスト名とポート番号のリストは、[AWSマネジメントコンソール](https://aws.amazon.com/console/)から取得できます。`--show-cache-node-info` パラメータで コマンドを使用AWS CLI`aws elasticache describe-cache-clusters`することもできます。

**Example**  
次の Java コードスニペットは、4 ノードクラスター内のすべてのノードに接続する方法を示しています。  

```
...

ArrayList<String> cacheNodes = new ArrayList<String>(
	Arrays.asList(
	    "mycachecluster.fnjyzo.0001.use1.cache.amazonaws.com:11211",
	    "mycachecluster.fnjyzo.0002.use1.cache.amazonaws.com:11211",
	    "mycachecluster.fnjyzo.0003.use1.cache.amazonaws.com:11211",
	    "mycachecluster.fnjyzo.0004.use1.cache.amazonaws.com:11211"));
	      
MemcachedClient cache = new MemcachedClient(AddrUtil.getAddresses(cacheNodes));

...
```

**重要**  
ノードを追加または削除してクラスターをスケールアップまたはスケールダウンする場合、クライアントコード内のノードのリストを更新する必要があります。

# Memcached クライアントライブラリへの自動検出の追加
<a name="AutoDiscovery.AddingToYourClientLibrary"></a>

自動検出の設定情報は、各 Memcached クラスターノードに冗長的に保存されます。クライアントアプリケーションは、任意のキャッシュノードのクエリを実行し、クラスター内のすべてのノードの設定情報を取得できます。

アプリケーションがこれを行う方法は、キャッシュエンジンバージョンによって異なります。
+ キャッシュエンジンバージョンが **1.4.14 以上**の場合、`config` コマンドを使用します。
+ キャッシュエンジンバージョンが **1.4.14 未満の場合**、`get AmazonElastiCache:cluster` コマンドを使用します。

これらの 2 つのコマンドの出力は同じです。以下の「[[Output Format] (出力形式)](#AutoDiscovery.AddingToYourClientLibrary.OutputFormat)」セクションで説明します。

## キャッシュエンジンバージョン 1.4.14 以降
<a name="AutoDiscovery.AddingToYourClientLibrary.1-4-14-plus"></a>

キャッシュエンジンバージョン 1.4.14 以上の場合、`config` コマンドを使用します。このコマンドは、ElastiCache により Memcached ASCII およびバイナリプロトコルに追加され、ElastiCache クラスタークライアントに実装されます。別のクライアントライブラリで自動検出を使用する場合、`config` コマンドをサポートするためにそのライブラリを拡張する必要があります。

**注記**  
以下のドキュメントは ASCII プロトコルに関連しています。ただし、`config` コマンドでは ASCII とバイナリの両方がサポートされます。バイナリプロトコルを使用する自動検出サポートを追加する場合、「[ElastiCache クラスタークライアントのソースコード](https://github.com/amazonwebservices/aws-elasticache-cluster-client-memcached-for-java/tree/master/src/main/java/net/spy/memcached/protocol/binary)」を参照してください。

**[Syntax]** (構文)

`config [sub-command] [key]`

### オプション
<a name="AutoDiscovery.AddingToYourClientLibrary.1-4-14-plus.Options"></a>


| 名前 | 説明 | 必須 | 
| --- | --- | --- | 
| sub-command |  キャッシュノードの操作に使用されるサブコマンド。自動検出の場合、このサブコマンドは `get` です。  | はい | 
| key |  クラスター設定が格納されたキー。自動検出の場合、このキーの名前は `cluster` です。  | はい | 

クラスターの設定情報を取得するには、以下のコマンドを使用します。

```
config get cluster
```

## キャッシュエンジンバージョン 1.4.14 以前
<a name="AutoDiscovery.AddingToYourClientLibrary.pre-1-4-14"></a>

クラスターの設定情報を取得するには、以下のコマンドを使用します。

```
get AmazonElastiCache:cluster
```

**注記**  
「AmazonElastiCache:cluster」キーには、クラスターの設定情報が存在するため、変更しないことをお勧めします。このキーを上書きした場合、ElastiCache により設定情報が自動的かつ正しく設定されるまで、クライアントの設定が短時間（15 秒以内）不適切になる可能性があります。

## [Output Format] (出力形式)
<a name="AutoDiscovery.AddingToYourClientLibrary.OutputFormat"></a>

`config get cluster` を使用するか `get AmazonElastiCache:cluster` を使用するかにかかわらず、応答は 2 行で構成されます。
+ 設定情報のバージョン番号。クラスターにノードが追加または削除されるたび、バージョン番号は 1 ずつ増加します。
+ キャッシュノードのリスト。リスト内の各ノードは、*hostname\$1ip-address\$1port* グループによって表され、各ノードはスペースで区切られます。

各行の末尾には、キャリッジリターンと改行文字 (CR \$1 LF) が表示されます。データ行には最後に改行文字 (LF) が含まれ、ここに CR \$1 LF が追加されます。バージョン設定行は、CR なしの LF で終了します。

3 つのノードを含むクラスターは、次のように表されます。

```
configversion\n
hostname|ip-address|port hostname|ip-address|port hostname|ip-address|port\n\r\n
```

各ノードは、CNAME およびプライベート IP アドレスと共に表示されます。CNAME は常に存在します。プライベート IP アドレスを使用できない場合は表示されませんが、その場合もパイプ文字「`|`」は出力されます。

**Example**  
設定情報のクエリを実行した場合に返されるペイロードの例を次に示します。  

```
CONFIG cluster 0 136\r\n
12\n
myCluster.pc4ldq.0001.use1.cache.amazonaws.com|10.82.235.120|11211 myCluster.pc4ldq.0002.use1.cache.amazonaws.com|10.80.249.27|11211\n\r\n 
END\r\n
```

**注記**  
2 行目は、設定情報がこれまで 12 回変更されたことを示しています。
3 行目のノードのリストでは、ホスト名がアルファベット順に並んでいます。この順序は、現在クライアントアプリケーションで何を使用しているかにより異なる場合があります。

# 自動検出機能を持つ ElastiCache クライアント
<a name="Clients"></a>

クラスタークライアントプログラムは、Memcached エンジンを実行しているすべてのクラスターノードを自動的に識別して接続できます。

このセクションでは、自動検出を使用するための ElastiCache PHP と .NET クライアントのインストールと設定について説明します。

**Topics**
+ [クラスタークライアントのインストールとコンパイル](Appendix.InstallingClients.md)
+ [ElastiCache クライアントの設定](ClientConfig.md)

# クラスタークライアントのインストールとコンパイル
<a name="Appendix.InstallingClients"></a>

このセクションでは、PHP および .NET Amazon ElastiCache 自動検出クラスタークライアントのインストール、設定、コンパイルを取り上げます。

**Topics**
+ [ElastiCache Cluster Client for .NET のインストール](Appendix.DotNETAutoDiscoverySetup.md)
+ [ElastiCache Cluster Client for PHP のインストール](Appendix.PHPAutoDiscoverySetup.md)
+ [PHP 向けの ElastiCache クラスタークライアントのソースコードのコンパイル](Appendix.PHPAutoDiscoveryCompile.md)

# ElastiCache Cluster Client for .NET のインストール
<a name="Appendix.DotNETAutoDiscoverySetup"></a>

ElastiCache .NET Cluster Client のコードは、オープンソースとして [https://github.com/awslabs/elasticache-cluster-config-net](https://github.com/awslabs/elasticache-cluster-config-net) から入手できます。

このセクションでは、Amazon EC2 インスタンスで ElastiCache Cluster Client の .NET コンポーネントをインストール、更新、および削除する方法について説明します。自動検出の詳細については、「[クラスター (Memcached) 内のノードを自動的に識別する](AutoDiscovery.md)」を参照してください。クライアントを使用するサンプル .NET コードについては、「[ElastiCache Cluster Client for .NET の使用](AutoDiscovery.Using.ModifyApp.DotNET.md)」を参照してください。

**Topics**
+ [.NET のインストール](#Appendix.DotNETAutoDiscoverySetup.DotNET)
+ [ElastiCache .NET Cluster Client for ElastiCache のダウンロード](#Appendix.DotNETAutoDiscoverySetup.Downloading)
+ [NuGet を使用した AWS アセンブリのインストール](#Appendix.DotNETAutoDiscoverySetup.Installing)

## .NET のインストール
<a name="Appendix.DotNETAutoDiscoverySetup.DotNET"></a>

AWS .NET SDK for ElastiCache を使用するには、.NET 3.5 以降がインストールされている必要があります。.NET 3.5 以降がインストールされていない場合は、[http://www.microsoft.com/net](http://www.microsoft.com/net) から最新バージョンをダウンロードしてインストールできます。

## ElastiCache .NET Cluster Client for ElastiCache のダウンロード
<a name="Appendix.DotNETAutoDiscoverySetup.Downloading"></a>

**ElastiCache .NET Cluster Client のダウンロード**

1. AWS マネジメントコンソール にサインインして、ElastiCache コンソール ([https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/)) を開きます。

1. ナビゲーションペインで [**ElastiCache Cluster Client**] をクリックします。

1. [**Download ElastiCache Memcached Cluster Client**] リストで、[**.NET**] を選択し、[**Download**] をクリックします。

## NuGet を使用した AWS アセンブリのインストール
<a name="Appendix.DotNETAutoDiscoverySetup.Installing"></a>

NuGet は .NET プラットフォームのパッケージ管理システムです。NuGet ではアセンブリの依存関係が認識され、必要なすべてのファイルが自動的にインストールされます。NuGet によってインストールされるアセンブリは、`Program Files` などの一元的な場所ではなく、ソリューションと共に保存されるため、互換性の問題を発生させることなく、アプリケーションに固有のバージョンをインストールできます。

### NuGet のインストール
<a name="Appendix.DotNETAutoDiscoverySetup.Installing.NuGet"></a>

NuGet は MSDN の Installation Gallery からインストールできます。[https://visualstudiogallery.msdn.microsoft.com/27077b70-9dad-4c64-adcf-c7cf6bc9970c](https://visualstudiogallery.msdn.microsoft.com/27077b70-9dad-4c64-adcf-c7cf6bc9970c) を参照してください。Visual Studio 2010 以降を使用している場合、NuGet は自動的にインストールされます。

NuGet は**ソリューションエクスプローラー**または**パッケージマネージャコンソール**から使用できます。

### ソリューションエクスプローラーからの NuGet の使用
<a name="Appendix.DotNETAutoDiscoverySetup.NuGet.SolutionExplorer"></a>

**Visual Studio 2010 でソリューションエクスプローラーから NuGet を使用するには**

1. [**Tools**] メニューから、[**Library Package Manager**] を選択します。

1. **[Package Manager Console]** をクリックします。

**Visual Studio 2012 または Visual Studio 2013 でソリューションエクスプローラーから NuGet を使用するには**

1. [**Tools**] メニューから、[**NuGet Package Manager**] を選択します。

1. **[Package Manager Console]** をクリックします。

コマンドラインから、次のように `Install-Package` を使用してアセンブリをインストールできます。

```
Install-Package Amazon.ElastiCacheCluster
```

AWSSDK や AWS.Extensions アセンブリなど、NuGet を通じて利用できる各パッケージ用のページを表示するには、NuGet ウェブサイト ([http://www.nuget.org](http://www.nuget.org)) を参照してください。各パッケージのページには、コンソールを使用してパッケージをインストールするためのサンプルコマンドラインや、NuGet を通じて利用できるパッケージの以前のバージョンのリストが含まれています。

**Package Manager Console** のコマンドの詳細については、[http://nuget.codeplex.com/wikipage?title=Package%20Manager%20Console%20Command%20Reference%20%28v1.3%29](http://nuget.codeplex.com/wikipage?title=Package%20Manager%20Console%20Command%20Reference%20%28v1.3%29) を参照してください。

# ElastiCache Cluster Client for PHP のインストール
<a name="Appendix.PHPAutoDiscoverySetup"></a>

このセクションでは、Amazon EC2 インスタンスで ElastiCache Cluster Client の PHP コンポーネントをインストール、更新、および削除する方法について説明します。自動検出の詳細については、「[クラスター (Memcached) 内のノードを自動的に識別する](AutoDiscovery.md)」を参照してください。クライアントを使用するサンプル PHP コードについては、「[PHP 向けの ElastiCache クラスタークライアントの使用](AutoDiscovery.Using.ModifyApp.PHP.md)」を参照してください。

**Topics**
+ [インストールパッケージのダウンロード](Appendix.PHPAutoDiscoverySetup.Downloading.md)
+ [既に *php-memcached* 拡張機能をインストールしているユーザーの場合](#Appendix.PHPAutoDiscoverySetup.InstallingExisting)
+ [新規ユーザーのインストール手順](Appendix.PHPAutoDiscoverySetup.Installing.md)
+ [PHP Cluster Client の削除](Appendix.PHPAutoDiscoverySetup.Removing.md)

# インストールパッケージのダウンロード
<a name="Appendix.PHPAutoDiscoverySetup.Downloading"></a>

適切なバージョンの ElastiCache Cluster Client for PHP を使用するには、Amazon EC2 インスタンスにインストールされている PHP のバージョンを確認する必要があります。また、Amazon EC2 インスタンスが Linux の 64 ビットバージョンと 32 ビットバージョンのどちらを実行しているかも確認する必要があります。

**Amazon EC2 インスタンスにインストールされている PHP のバージョンを確認するには**
+ コマンドプロンプトで、次のコマンドを入力します。

  ```
  php -v
  ```

  PHP のバージョンは、次の例のように出力に表示されます。

  ```
  PHP 5.4.10 (cli) (built: Jan 11 2013 14:48:57) 
  Copyright (c) 1997-2012 The PHP Group
  Zend Engine v2.4.0, Copyright (c) 1998-2012 Zend Technologies
  ```
**注記**  
PHP と Memcached のバージョンに互換性がない場合は、以下のようなエラーメッセージが表示されます。  

  ```
  PHP Warning: PHP Startup: memcached: Unable to initialize module
  Module compiled with module API=20100525
  PHP compiled with module API=20131226
  These options need to match
  in Unknown on line 0
  ```
この場合は、ソースコードからモジュールをコンパイルする必要があります。詳細については、「[PHP 向けの ElastiCache クラスタークライアントのソースコードのコンパイル](Appendix.PHPAutoDiscoveryCompile.md)」を参照してください。

**Amazon EC2 AMI アーキテクチャ（64 ビットまたは 32 ビット）を確認するには**

1. AWS マネジメントコンソール にサインインし、Amazon EC2 コンソール ([https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)) を開きます。

1. [**インスタンス**] リストで、Amazon EC2 インスタンスをクリックします。

1. [**Description**] タブで、[**AMI:**] フィールドを検索します。64 ビットのインスタンスでは、説明に `x86_64` が含まれています。32 ビットのインスタンスの場合は、このフィールドで `i386` または `i686` を探します。

これで ElastiCache Cluster Client をダウンロードする準備ができました。

**ElastiCache Cluster Client for PHP のダウンロード**

1. AWS マネジメントコンソール にサインインして、ElastiCache コンソール ([https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/)) を開きます。

1. ElastiCache コンソールから [**ElastiCache Cluster Client**] を選択します。

1. [**Download Memcached Cluster Client**] リストで、PHP バージョンと AMI アーキテクチャに合った ElastiCache クラスタークライアントを選択し、[**Download**] ボタンを選択します。

## 既に *php-memcached* 拡張機能をインストールしているユーザーの場合
<a name="Appendix.PHPAutoDiscoverySetup.InstallingExisting"></a>

**`php-memcached` のインストールを更新するには**

1. 「[PHP Cluster Client の削除](Appendix.PHPAutoDiscoverySetup.Removing.md)」トピックで説明しているように、PHP 用の Memcached 拡張機能の以前のインストールを削除します。

1. 前に「[新規ユーザーのインストール手順](Appendix.PHPAutoDiscoverySetup.Installing.md)」で説明したように、新しい ElastiCache `php-memcached` 拡張機能をインストールします。

# 新規ユーザーのインストール手順
<a name="Appendix.PHPAutoDiscoverySetup.Installing"></a>

**Topics**
+ [新規ユーザー向けの PHP 7.x のインストール](#Appendix.PHPAutoDiscoverySetup.Installing.PHP7x)
+ [新規ユーザー向けの PHP 5.x のインストール](#Appendix.PHPAutoDiscoverySetup.Installing.PHP5x)

## 新規ユーザー向けの PHP 7.x のインストール
<a name="Appendix.PHPAutoDiscoverySetup.Installing.PHP7x"></a>

**Topics**
+ [Ubuntu Server 14.04 LTS AMI (64 ビットおよび 32 ビット) に PHP 7 をインストールするには](#Appendix.PHPAutoDiscoverySetup.Installing.PHP7x.Ubuntu)
+ [PHP 7 を Amazon Linux 201609 AMI にインストールするには](#Appendix.PHPAutoDiscoverySetup.Installing.PHP7x.AmznLinux)
+ [SUSE Linux AMI に PHP 7 をインストールするには](#Appendix.PHPAutoDiscoverySetup.Installing.PHP7x.SuseLinux)

### Ubuntu Server 14.04 LTS AMI (64 ビットおよび 32 ビット) に PHP 7 をインストールするには
<a name="Appendix.PHPAutoDiscoverySetup.Installing.PHP7x.Ubuntu"></a>

1. AMI から新しいインスタンスを起動します。

1. 以下のコマンドを実行します。

   ```
   sudo apt-get update
   sudo apt-get install gcc g++
   ```

1. PHP 7 をインストールします。

   ```
   sudo yum install php70
   ```

1. Amazon ElastiCache Cluster Client をダウンロードします。

   ```
   wget https://elasticache-downloads.s3.amazonaws.com/ClusterClient/PHP-7.0/latest-64bit
   ```

1. `latest-64bit` を展開します。

   ```
   tar -zxvf latest-64bit
   ```

1. root アクセス権限を使用して、抽出されたアーティファクトファイル `amazon-elasticache-cluster-client.so` を `/usr/lib/php/20151012` にコピーします。

   ```
   sudo mv artifact/amazon-elasticache-cluster-client.so /usr/lib/php/20151012
   ```

1. `extension=amazon-elasticache-cluster-client.so` ファイルに `/etc/php/7.0/cli/php.ini` 行を挿入します。

   ```
   echo "extension=amazon-elasticache-cluster-client.so" | sudo tee --append /etc/php/7.0/cli/php.ini
   ```

1. Apache サーバーを起動または再起動します。

   ```
   sudo /etc/init.d/httpd start
   ```

 

### PHP 7 を Amazon Linux 201609 AMI にインストールするには
<a name="Appendix.PHPAutoDiscoverySetup.Installing.PHP7x.AmznLinux"></a>

1. AMI から新しいインスタンスを起動します。

1. 次のコマンドを実行してください。

   ```
   sudo yum install gcc-c++
   ```

1. PHP 7 をインストールします。

   ```
   sudo yum install php70
   ```

1. Amazon ElastiCache Cluster Client をダウンロードします。

   ```
   wget https://elasticache-downloads.s3.amazonaws.com/ClusterClient/PHP-7.0/latest-64bit
   ```

1. `latest-64bit` を展開します。

   ```
   tar -zxvf latest-64bit
   ```

1. root アクセス権限を使用して、抽出されたアーティファクトファイル `amazon-elasticache-cluster-client.so` を `/usr/lib64/php/7.0/modules/` にコピーします。

   ```
   sudo mv artifact/amazon-elasticache-cluster-client.so /usr/lib64/php/7.0/modules/
   ```

1. `50-memcached.ini` ファイルを作成します。

   ```
   echo "extension=amazon-elasticache-cluster-client.so" | sudo tee --append /etc/php-7.0.d/50-memcached.ini
   ```

1. Apache サーバーを起動または再起動します。

   ```
   sudo /etc/init.d/httpd start
   ```

 

### SUSE Linux AMI に PHP 7 をインストールするには
<a name="Appendix.PHPAutoDiscoverySetup.Installing.PHP7x.SuseLinux"></a>

1. AMI から新しいインスタンスを起動します。

1. 次のコマンドを実行してください。

   ```
   sudo zypper install gcc
   ```

1. PHP 7 をインストールします。

   ```
   sudo yum install php70
   ```

1. Amazon ElastiCache Cluster Client をダウンロードします。

   ```
   wget https://elasticache-downloads.s3.amazonaws.com/ClusterClient/PHP-7.0/latest-64bit
   ```

1. `latest-64bit` を展開します。

   ```
   tar -zxvf latest-64bit
   ```

1. root アクセス権限を使用して、抽出されたアーティファクトファイル `amazon-elasticache-cluster-client.so` を `/usr/lib64/php7/extensions/` にコピーします。

   ```
   sudo mv artifact/amazon-elasticache-cluster-client.so /usr/lib64/php7/extensions/
   ```

1. `extension=amazon-elasticache-cluster-client.so` ファイルに `/etc/php7/cli/php.ini` 行を挿入します。

   ```
   echo "extension=amazon-elasticache-cluster-client.so" | sudo tee --append /etc/php7/cli/php.ini
   ```

1. Apache サーバーを起動または再起動します。

   ```
   sudo /etc/init.d/httpd start
   ```

 

## 新規ユーザー向けの PHP 5.x のインストール
<a name="Appendix.PHPAutoDiscoverySetup.Installing.PHP5x"></a>

**Topics**
+ [Amazon Linux AMI 2014.03 (64 ビットおよび 32 ビット) に PHP 5 をインストールするには](#Appendix.PHPAutoDiscoverySetup.Installing.PHP5x.AmznLinux)
+ [Red Hat Enterprise Linux 7.0 AMI (64 ビットおよび 32 ビット) に PHP 5 をインストールするには](#Appendix.PHPAutoDiscoverySetup.Installing.PHP5x.RHEL)
+ [Ubuntu Server 14.04 LTS AMI (64 ビットおよび 32 ビット) に PHP 5 をインストールするには](#Appendix.PHPAutoDiscoverySetup.Installing.PHP5x.Ubuntu)
+ [SUSE Linux Enterprise Server 11 AMI (64 ビットまたは 32 ビット) に PHP 5 をインストールするには](#Appendix.PHPAutoDiscoverySetup.Installing.PHP5x.SuseLinux)
+ [他の Linux ディストリビューション](#Appendix.PHPAutoDiscoverySetup.Installing.PHP5x.Other)

### Amazon Linux AMI 2014.03 (64 ビットおよび 32 ビット) に PHP 5 をインストールするには
<a name="Appendix.PHPAutoDiscoverySetup.Installing.PHP5x.AmznLinux"></a>

1. Amazon Linux インスタンス (64 ビットまたは 32 ビット) を起動し、ログインします。

1. PHP の依存関係をインストールします。

   ```
   sudo yum install gcc-c++ php php-pear
   ```

1. Amazon EC2 インスタンスと PHP のバージョンに合った適切な `php-memcached` パッケージをダウンロードします。詳細については、「[インストールパッケージのダウンロード](Appendix.PHPAutoDiscoverySetup.Downloading.md)」を参照してください。

1. `php-memcached` をインストールします。URI にはインストールパッケージのダウンロードパスを指定します。

   ```
   sudo pecl install <package download path>
   ```

   PHP 5.4、64 ビット Linux 用のサンプルインストールコマンドを次に示します。このサンプルでは、*X.Y.Z* を実際のバージョン番号に置き換えてください。

   ```
   sudo pecl install /home/AmazonElastiCacheClusterClient-X.Y.Z-PHP54-64bit.tgz
   ```
**注記**  
インストールアーティファクトの最新バージョンを使用してください。

1. root/sudo アクセス許可を使用して、`memcached.ini` という名前の新しいファイルを `/etc/php.d` ディレクトリに追加し、このファイルに「extension=amazon-elasticache-cluster-client.so」を挿入します。

   ```
   echo "extension=amazon-elasticache-cluster-client.so" | sudo tee --append /etc/php.d/memcached.ini
   ```

1. Apache サーバーを起動または再起動します。

   ```
   sudo /etc/init.d/httpd start
   ```

 

### Red Hat Enterprise Linux 7.0 AMI (64 ビットおよび 32 ビット) に PHP 5 をインストールするには
<a name="Appendix.PHPAutoDiscoverySetup.Installing.PHP5x.RHEL"></a>

1. Red Hat Enterprise Linux インスタンス (64 ビットまたは 32 ビット) を起動し、ログインします。

1. PHP の依存関係をインストールします。

   ```
   sudo yum install gcc-c++ php php-pear
   ```

1. Amazon EC2 インスタンスと PHP のバージョンに合った適切な `php-memcached` パッケージをダウンロードします。詳細については、「[インストールパッケージのダウンロード](Appendix.PHPAutoDiscoverySetup.Downloading.md)」を参照してください。

1. `php-memcached` をインストールします。URI にはインストールパッケージのダウンロードパスを指定します。

   ```
   sudo pecl install <package download path>
   ```

1. root/sudo アクセス許可を使用して、`memcached.ini` という名前の新しいファイルを `/etc/php.d` ディレクトリに追加し、このファイルに「`extension=amazon-elasticache-cluster-client.so`」を挿入します。

   ```
   echo "extension=amazon-elasticache-cluster-client.so" | sudo tee --append /etc/php.d/memcached.ini
   ```

1. Apache サーバーを起動または再起動します。

   ```
   sudo /etc/init.d/httpd start
   ```

 

### Ubuntu Server 14.04 LTS AMI (64 ビットおよび 32 ビット) に PHP 5 をインストールするには
<a name="Appendix.PHPAutoDiscoverySetup.Installing.PHP5x.Ubuntu"></a>

1. Ubuntu Linux インスタンス (64 ビットまたは 32 ビット) を起動し、ログインします。

1. PHP の依存関係をインストールします。

   ```
   sudo apt-get update 
   sudo apt-get install gcc g++ php5 php-pear
   ```

1. Amazon EC2 インスタンスと PHP のバージョンに合った適切な `php-memcached` パッケージをダウンロードします。詳細については、「[インストールパッケージのダウンロード](Appendix.PHPAutoDiscoverySetup.Downloading.md)」を参照してください。

1. `php-memcached` をインストールします。URI にはインストールパッケージのダウンロードパスを指定します。

   ```
   sudo pecl install <package download path>
   ```
**注記**  
このインストール手順では、ビルドアーティファクト `amazon-elasticache-cluster-client.so` が `/usr/lib/php5/20121212*` ディレクトリにインストールされます。次のステップで必要になるため、ビルドアーティファクトの絶対パスを確認してください。

   前のコマンドが機能しない場合は、PHP クライアントアーティファクト `amazon-elasticache-cluster-client.so` を、ダウンロードした `*.tgz` ファイルから手動で抽出し、`/usr/lib/php5/20121212*` ディレクトリにコピーする必要があります。

   ```
   tar -xvf <package download path>
   cp amazon-elasticache-cluster-client.so /usr/lib/php5/20121212/
   ```

1. root/sudo アクセス許可を使用して、`memcached.ini` という名前の新しいファイルを `/etc/php5/cli/conf.d` ディレクトリに追加し、このファイルに「extension=<absolute path to amazon-elasticache-cluster-client.so>」を挿入します。

   ```
   echo "extension=<absolute path to amazon-elasticache-cluster-client.so>" | sudo tee --append /etc/php5/cli/conf.d/memcached.ini
   ```

1. Apache サーバーを起動または再起動します。

   ```
   sudo /etc/init.d/httpd start
   ```

 

### SUSE Linux Enterprise Server 11 AMI (64 ビットまたは 32 ビット) に PHP 5 をインストールするには
<a name="Appendix.PHPAutoDiscoverySetup.Installing.PHP5x.SuseLinux"></a>

1. SUSE Linux インスタンス (64 ビットまたは 32 ビット) を起動し、ログインします。

1. PHP の依存関係をインストールします。

   ```
   sudo zypper install gcc php53-devel
   ```

1. Amazon EC2 インスタンスと PHP のバージョンに合った適切な `php-memcached` パッケージをダウンロードします。詳細については、「[インストールパッケージのダウンロード](Appendix.PHPAutoDiscoverySetup.Downloading.md)」を参照してください。

1. `php-memcached` をインストールします。URI にはインストールパッケージのダウンロードパスを指定します。

   ```
   sudo pecl install <package download path>
   ```

1. root/sudo アクセス許可を使用して、`memcached.ini` という名前の新しいファイルを `/etc/php5/conf.d` ディレクトリに追加し、このファイルに「**extension=`amazon-elasticache-cluster-client.so`**」を挿入します。

   ```
   echo "extension=amazon-elasticache-cluster-client.so" | sudo tee --append /etc/php5/conf.d/memcached.ini
   ```

1. Apache サーバーを起動または再起動します。

   ```
   sudo /etc/init.d/httpd start
   ```

**注記**  
ステップ 5 が以前のプラットフォームで機能しない場合、`amazon-elasticache-cluster-client.so` のインストールパスを確認してください。さらに、extension でバイナリの完全なパスを指定します。また、使用中の PHP がサポートされているバージョンであることも検証します。バージョン 5.3 ～ 5.5 がサポートされています。

 

### 他の Linux ディストリビューション
<a name="Appendix.PHPAutoDiscoverySetup.Installing.PHP5x.Other"></a>

特に CentOS7 や Red Hat Enterprise Linux (RHEL) 7.1 など、一部のシステムでは、`libsasl2.so.3` が `libsasl2.so.2` に置き換えられました。これらのシステムは、ElastiCache クラスタークライアントをロードする際、`libsasl2.so.2` をロードしようとしますが見つけることができません。この問題を解決するには、クライアントが libsasl2.so.2 をロードしようとしたときに `libsasl2.so.3` にリダイレクトされるように、`libsasl2.so.3` へのシンボリックリンクを作成します。次のコードでは、このシンボリックリンクが作成されます。

```
cd /usr/lib64
sudo ln libsasl2.so.3 libsasl2.so.2
```

# PHP Cluster Client の削除
<a name="Appendix.PHPAutoDiscoverySetup.Removing"></a>

**Topics**
+ [PHP 7 の以前のバージョンの削除](#Appendix.PHPAutoDiscoverySetup.Removing.PHP7x)
+ [PHP 5 の以前のバージョンの削除](#Appendix.PHPAutoDiscoverySetup.Removing.PHP5x)

## PHP 7 の以前のバージョンの削除
<a name="Appendix.PHPAutoDiscoverySetup.Removing.PHP7x"></a>

**PHP 7 の以前のバージョンを削除するには**

1. インストール手順で先ほど示した該当する PHP lib ディレクトリから `amazon-elasticache-cluster-client.so` ファイルを削除します。「[既に *php-memcached* 拡張機能をインストールしているユーザーの場合](Appendix.PHPAutoDiscoverySetup.md#Appendix.PHPAutoDiscoverySetup.InstallingExisting)」でインストールのセクションを参照してください。

1. `extension=amazon-elasticache-cluster-client.so` ファイルから `php.ini` 行を削除します。

1. Apache サーバーを起動または再起動します。

   ```
   sudo /etc/init.d/httpd start
   ```

## PHP 5 の以前のバージョンの削除
<a name="Appendix.PHPAutoDiscoverySetup.Removing.PHP5x"></a>

**PHP 5 の以前のバージョンを削除するには**

1. `php-memcached` 拡張機能を削除します。

   ```
   sudo pecl uninstall __uri/AmazonElastiCacheClusterClient
   ```

1.  前のインストールの手順に従って適切なディレクトリに追加した `memcached.ini` ファイルを削除します。

# PHP 向けの ElastiCache クラスタークライアントのソースコードのコンパイル
<a name="Appendix.PHPAutoDiscoveryCompile"></a>

このセクションでは、ElastiCache Cluster Client for PHP のソースコードを取得しコンパイルする方法について説明します。

GitHub から取得し、コンパイルする必要がある 2 つのパッケージがあります。[aws-elasticache-cluster-client-libmemcached](https://github.com/awslabs/aws-elasticache-cluster-client-libmemcached) および [aws-elasticache-cluster-client-memcached-for-php](https://github.com/awslabs/aws-elasticache-cluster-client-memcached-for-php)。

**Topics**
+ [libmemcached ライブラリのコンパイル](#Appendix.PHPAutoDiscoveryCompile.Libmemcached)
+ [PHP 用 ElastiCache Memcached Auto Discovery クライアントのコンパイル](#Appendix.PHPAutoDiscoveryCompile.Client)

## libmemcached ライブラリのコンパイル
<a name="Appendix.PHPAutoDiscoveryCompile.Libmemcached"></a>

**aws-elasticache-cluster-client-libmemcached ライブラリをコンパイルするには**

1. Amazon EC2 インスタンスの起動

1. ライブラリの依存関係をインストールします。
   + Amazon Linux 201509 AMI 上

     ```
     sudo yum install gcc gcc-c++ autoconf libevent-devel
     ```
   + Ubuntu 14.04 AMI 上

     ```
     sudo apt-get update
     sudo apt-get install libevent-dev gcc g++ make autoconf libsasl2-dev
     ```

1. リポジトリをプルし、コードをコンパイルします。

   ```
   Download and install [ https://github.com/awslabs/aws-elasticache-cluster-client-libmemcached/archive/v1.0.18.tar.gz]( https://github.com/awslabs/aws-elasticache-cluster-client-libmemcached/archive/v1.0.18.tar.gz)
   ```

## PHP 用 ElastiCache Memcached Auto Discovery クライアントのコンパイル
<a name="Appendix.PHPAutoDiscoveryCompile.Client"></a>

以下のセクションでは、ElastiCache Memcached Auto Discovery クライアントをコンパイルする方法について説明します。

**Topics**
+ [PHP 7 用 ElastiCache Memcached クライアントのコンパイル](#Appendix.PHPAudiscoveryCompile.Client.PHP7)
+ [PHP 5 用 ElastiCache Memcached クライアントのコンパイル](#Appendix.PHPAudiscoveryCompile.PHP5)

### PHP 7 用 ElastiCache Memcached クライアントのコンパイル
<a name="Appendix.PHPAudiscoveryCompile.Client.PHP7"></a>

code ディレクトリで以下の一連のコマンドを実行します。

```
git clone https://github.com/awslabs/aws-elasticache-cluster-client-memcached-for-php.git
cd aws-elasticache-cluster-client-memcached-for-php 
git checkout php7
sudo yum install php70-devel
phpize
./configure --with-libmemcached-dir=<libmemcached-install-directory> --disable-memcached-sasl
make
make install
```

**注記**  
PHP バイナリに libmemcached ライブラリを静的にリンクして、さまざまな Linux プラットフォーム間でできるようにします。そのためには、`make` の前にコマンドを実行します。  

```
sed -i "s#-lmemcached#<libmemcached-install-directory>/lib/libmemcached.a -lcrypt -lpthread -lm -lstdc++ -lsasl2#" Makefile 
```

### PHP 5 用 ElastiCache Memcached クライアントのコンパイル
<a name="Appendix.PHPAudiscoveryCompile.PHP5"></a>

`aws-elasticache-cluster-client-memcached-for-php` フォルダーで、以下のコマンドを実行して `aws-elasticache-cluster-client-memcached-for-php/` をコンパイルします。

```
git clone https://github.com/awslabs/aws-elasticache-cluster-client-memcached-for-php.git
cd aws-elasticache-cluster-client-memcached-for-php 
sudo yum install zlib-devel
phpize
./configure --with-libmemcached-dir=<libmemcached-install-directory>
make
make install
```

# ElastiCache クライアントの設定
<a name="ClientConfig"></a>

ElastiCache クラスターは、Valkey、Memcached、および Redis OSS のプロトコルに準拠しています。既存の環境で現在使用しているコード、アプリケーション、および一般的なツールのほとんどは、このサービスでもシームレスに動作します。

このセクションでは、ElastiCache のキャッシュノードに接続するための特定の考慮事項について説明します。

**Topics**
+ [制限されるコマンド](ClientConfig.RestrictedCommands.md)
+ [ノードのエンドポイントおよびポート番号を検索する](ClientConfig.FindingEndpointsAndPorts.md)
+ [自動検出を使用するための接続](ClientConfig.AutoDiscovery.md)
+ [Valkey または Redis OSS クラスター内のノードへの接続](ClientConfig.ReplicationGroup.md)
+ [DNS 名と基になっている IP](ClientConfig.DNS.md)

# 制限されるコマンド
<a name="ClientConfig.RestrictedCommands"></a>

マネージドサービス操作性を実現するため、ElastiCache では高度な特権を必要とする特定のキャッシュエンジン固有のコマンドへのアクセスが制限されます。Redis OSS を実行するクラスターの場合、次のコマンドは使用できせん。
+ `bgrewriteaof`
+ `bgsave`
+ `config`
+ `debug`
+ `migrate`
+ `replicaof`
+ `save`
+ `slaveof`
+ `shutdown`
+ `sync`

# ノードのエンドポイントおよびポート番号を検索する
<a name="ClientConfig.FindingEndpointsAndPorts"></a>

キャッシュノードに接続するには、アプリケーションがそのノードのエンドポイントとポート番号を認識している必要があります。

## ノードのエンドポイントおよびポート番号を検索する (コンソール)
<a name="ClientConfig.FindingEndpointsAndPorts.CON"></a>

 **ノードエンドポイントとポート番号を調べるには** 

1. [Amazon ElastiCache マネジメントコンソール](https://aws.amazon.com/elasticache)にサインインし、クラスターで実行しているエンジンを選択します。

   選択したエンジンを実行しているすべてのクラスターが一覧表示されます。

1. 実行しているエンジンや設定に対して、以下を行います。

1. 対象のクラスターの名前を選択します。

1. 関心があるノードの [**ポート**] および [**エンドポイント**] 列を見つけます。

## キャッシュノードのエンドポイントおよびポート番号を検索する (AWS CLI)
<a name="ClientConfig.FindingEndpointsAndPorts.CLI"></a>

キャッシュノードのエンドポイントとポート番号を確認するには、`describe-cache-clusters` コマンドを `--show-cache-node-info` パラメータを指定して使用します。

```
aws elasticache describe-cache-clusters --show-cache-node-info 
```

完全修飾 DNS 名とポート番号は、出力のエンドポイントセクションにあります。

## キャッシュノードのエンドポイントおよびポート番号を検索する (ElastiCache API)
<a name="ClientConfig.FindingEndpointsAndPorts.API"></a>

キャッシュノードのエンドポイントとポート番号を確認するには、`DescribeCacheClusters` アクションを `ShowCacheNodeInfo=true` パラメータを指定して使用します。

**Example**  

```
 1. https://elasticache.us-west-2.amazonaws.com /
 2.     ?Action=DescribeCacheClusters
 3.     &ShowCacheNodeInfo=true
 4.     &SignatureVersion=4
 5.     &SignatureMethod=HmacSHA256
 6.     &Timestamp=20140421T220302Z
 7.     &Version=2014-09-30   
 8.     &X-Amz-Algorithm=&AWS;4-HMAC-SHA256
 9.     &X-Amz-Credential=<credential>
10.     &X-Amz-Date=20140421T220302Z
11.     &X-Amz-Expires=20140421T220302Z
12.     &X-Amz-Signature=<signature>
13.     &X-Amz-SignedHeaders=Host
```

# 自動検出を使用するための接続
<a name="ClientConfig.AutoDiscovery"></a>

アプリケーションが自動検出を使用する場合、調べる必要があるのは各キャッシュノードの個々のエンドポイントではなく、クラスターの設定エンドポイントだけです。詳細については、「[クラスター (Memcached) 内のノードを自動的に識別する](AutoDiscovery.md)」を参照してください。

**注記**  
現在のところ、自動検出は Memcached エンジンを実行しているクラスターでのみ使用できます。

# Valkey または Redis OSS クラスター内のノードへの接続
<a name="ClientConfig.ReplicationGroup"></a>

**注記**  
現時点では、レプリケーションとリードレプリカをサポートするクラスター (API/CLI: レプリケーショングループ) は、Valkey または Redis OSS を実行するクラスターでのみサポートされています。

クラスターの場合、ElastiCache には個々のノードの接続情報を取得するためのコンソール、CLI、および API インターフェイスが用意されています。

読み取り専用アクティビティの場合、アプリケーションはクラスター内のいずれのノードにも接続できます。ただし、書き込みアクティビティの場合、アプリケーションから直接ノードに接続する代わりに、アプリケーションからクラスターのプライマリエンドポイント (Valkey または Redis OSS (クラスターモードが無効)) または設定エンドポイント (Valkey または Redis OSS (クラスターモードが有効)) に接続することをお勧めします。これにより、リードレプリカをプライマリロールに昇格させることでクラスターを再設定することにした場合でも、アプリケーションは常に正しいノードを見つけることができます。

## レプリケーショングループのクラスターへの接続 (コンソール)
<a name="ClientConfig.ReplicationGroup.CON"></a>

**エンドポイントとポート番号を調べるには**
+ トピックを参照してください。[Valkey または Redis OSS (クラスターモードが無効) クラスターのエンドポイントを検索する (コンソール)](Endpoints.md#Endpoints.Find.Redis)

## レプリケーショングループのクラスターへの接続 (AWS CLI)
<a name="ClientConfig.ReplicationGroup.CLI"></a>

 **キャッシュノードのエンドポイントとポート番号を調べるには**

レプリケーショングループの名前を指定して、`describe-replication-groups` コマンドを使用します。

```
aws elasticache describe-replication-groups redis2x2
```

このコマンドでは、次のような出力が生成されます。

```
{
    "ReplicationGroups": [
        {
            "Status": "available", 
            "Description": "2 shards, 2 nodes (1 + 1 replica)", 
            "NodeGroups": [
                {
                    "Status": "available", 
                    "Slots": "0-8191", 
                    "NodeGroupId": "0001", 
                    "NodeGroupMembers": [
                        {
                            "PreferredAvailabilityZone": "us-west-2c", 
                            "CacheNodeId": "0001", 
                            "CacheClusterId": "redis2x2-0001-001"
                        }, 
                        {
                            "PreferredAvailabilityZone": "us-west-2a", 
                            "CacheNodeId": "0001", 
                            "CacheClusterId": "redis2x2-0001-002"
                        }
                    ]
                }, 
                {
                    "Status": "available", 
                    "Slots": "8192-16383", 
                    "NodeGroupId": "0002", 
                    "NodeGroupMembers": [
                        {
                            "PreferredAvailabilityZone": "us-west-2b", 
                            "CacheNodeId": "0001", 
                            "CacheClusterId": "redis2x2-0002-001"
                        }, 
                        {
                            "PreferredAvailabilityZone": "us-west-2a", 
                            "CacheNodeId": "0001", 
                            "CacheClusterId": "redis2x2-0002-002"
                        }
                    ]
                }
            ], 
            "ConfigurationEndpoint": {
                "Port": 6379, 
                "Address": "redis2x2.9dcv5r.clustercfg.usw2.cache.amazonaws.com"
            }, 
            "ClusterEnabled": true, 
            "ReplicationGroupId": "redis2x2", 
            "SnapshotRetentionLimit": 1, 
            "AutomaticFailover": "enabled", 
            "SnapshotWindow": "13:00-14:00", 
            "MemberClusters": [
                "redis2x2-0001-001", 
                "redis2x2-0001-002", 
                "redis2x2-0002-001", 
                "redis2x2-0002-002"
            ], 
            "CacheNodeType": "cache.m3.medium", 
            "PendingModifiedValues": {}
        }
    ]
}
```

## レプリケーショングループのクラスターへの接続 (ElastiCache API)
<a name="ClientConfig.ReplicationGroup.API"></a>

 **キャッシュノードのエンドポイントとポート番号を調べるには** 

以下のパラメータを使って `DescribeReplicationGroups` を呼び出します。

`ReplicationGroupId` = レプリケーショングループの名前。

**Example**  

```
 1. https://elasticache.us-west-2.amazonaws.com /
 2.     ?Action=DescribeCacheClusters
 3.     &ReplicationGroupId=repgroup01
 4.     &Version=2014-09-30   
 5.     &SignatureVersion=4
 6.     &SignatureMethod=HmacSHA256
 7.     &Timestamp=20140421T220302Z
 8.     &X-Amz-Algorithm=&AWS;4-HMAC-SHA256
 9.     &X-Amz-Date=20140421T220302Z
10.     &X-Amz-SignedHeaders=Host
11.     &X-Amz-Expires=20140421T220302Z
12.     &X-Amz-Credential=<credential>
13.     &X-Amz-Signature=<signature>
```

# DNS 名と基になっている IP
<a name="ClientConfig.DNS"></a>

クライアントには、キャッシュデータが保存されているサーバーのアドレスとポートが含まれるサーバーリストが保持されています。ElastiCache を使用すると、DescribeCacheClusters API（または、describe-cache-clusters コマンドラインユーティリティ）により、サーバーリストに使用できる完全修飾 DNS エントリとポート番号が返されます。

**重要**  
キャッシュノードエンドポイントに接続するときは、クライアントアプリケーションがキャッシュノードの DNS 名を頻繁に解決するように設定することが重要です。

ElastiCache では、障害発生時にキャッシュノードが回復した場合にキャッシュノードの DNS 名が同じままであることが保証されます。

ほとんどのクライアントライブラリは、永続的なキャッシュノード接続をデフォルトでサポートします。ElastiCache を使用するときは、永続的なキャッシュノード接続の使用をお勧めします。クライアント側の DNS キャッシュが複数の場所 (クライアントライブラリ、言語ランタイム、クライアントオペレーティングシステムなど) で行われる場合があります。各レイヤーのアプリケーション設定を確認して、キャッシュノードの IP アドレスを頻繁に解決するようにしてください。

# ElastiCache のデータ階層化
<a name="data-tiering"></a>

レプリケーショングループを構成し、r6gd ファミリーのノードタイプを使用する ElastiCache for Valkey または ElastiCache for Redis OSS クラスターでは、メモリとローカル SSD (ソリッドステートドライブ) ストレージの間でデータが階層化されます。データ階層化は、データをメモリに保存するだけでなく、各クラスターノードで低コストのソリッドステートドライブ (SSD) を利用することで、Valkey または Redis OSS ワークロードにコストパフォーマンスの高い新たなオプションを提供します。これは、データセット全体の最大 20% に定期的にアクセスするワークロードや、SSD 上のデータにアクセスする際に増加するレイテンシーを許容できるアプリケーションに最適です。

データ階層化を行う ElastiCache クラスターでは、ElastiCache は保存するすべての項目の最終アクセス時間をモニタリングします。使用可能なメモリ (DRAM) が完全に消費されると、ElastiCache は Least Recently Used (LRU) アルゴリズムを使用して、アクセス頻度の低い項目をメモリから SSD に自動的に移動します。その後、SSD 上のデータにアクセスすると、ElastiCache はリクエストを処理する前に自動的かつ非同期的にデータをメモリに戻します。データのサブセットにのみ定期的にアクセスするワークロードがある場合、データ階層化は容量を優れたコスト効率でスケールするための最適な方法となります。

データ階層化を使用する場合、キー自体は常にメモリに残り、LRU によってメモリとディスクの値の配置が制御されます。一般に、データ階層化を使用する際は、キーサイズを値のサイズよりも小さくすることをお勧めします。

データ階層化は、アプリケーションワークロードへのパフォーマンスの影響を最小限に抑えるように設計されています。例えば、500 バイトの文字列値を想定した場合に、メモリ内のデータへのリクエストと比較すると、SSD に保存されたデータへのリクエストには平均で 300 マイクロ秒のレイテンシーが生じることが予想されます。

最も大きいデータ階層化ノードサイズ (cache.r6gd.16xlarge) では、単一の 500 ノードクラスターに最大 1 ペタバイトを保存できます (1 つのリードレプリカを使用する場合は 500 TB)。データ階層化は、ElastiCache でサポートされているすべての Valkey または Redis OSS コマンドおよびデータ構造と互換性があります。この機能を使用するためのクライアント側の変更は必要ありません。

**Topics**
+ [ベストプラクティス](#data-tiering-best-practices)
+ [制限](#data-tiering-prerequisites)
+ [料金](#data-tiering-pricing)
+ [モニタリング](#data-tiering-monitoring)
+ [データ階層化の使用](#data-tiering-enabling)
+ [データ階層化を有効にして、バックアップからクラスターにデータを復元する](#data-tiering-enabling-snapshots)

## ベストプラクティス
<a name="data-tiering-best-practices"></a>

推奨されるベストプラクティスを以下に示します：
+ データ階層化は、データセット全体の最大 20% に定期的にアクセスするワークロードや、SSD 上のデータにアクセスする際に増加するレイテンシーを許容できるアプリケーションに最適です。
+ データ階層化ノードで利用可能な SSD 容量を使用する場合は、値のサイズをキーサイズよりも大きくすることをお勧めします。DRAM と SSD の間で項目を移動すると、キーは常にメモリに残り、値だけが SSD 階層に移動されます。

## 制限
<a name="data-tiering-prerequisites"></a>

データ階層化には以下の制限があります。
+ データ階層化は、レプリケーショングループの一部であるクラスターでのみ使用できます。
+ 使用するノードタイプは、`us-east-2`、`us-east-1`、`us-west-2`、`us-west-1`、`eu-west-1`、`eu-central-1`、`eu-north-1`、`eu-west-3`、`ap-northeast-1`、`ap-southeast-1`、`ap-southeast-2`、`ap-south-1`、`ca-central-1`、`sa-east-1` のリージョンで使用できる r6gd ファミリーのものである必要があります。
+ Valkey 7.2 以降、または Redis OSS 6.2 以降のエンジンを使用する必要があります。
+ r6gd クラスターのバックアップは、r6gd を使用しなければ別のクラスターに復元できません。
+ データ階層化クラスターのバックアップを Amazon S3 にエクスポートすることはできません。
+ オンライン移行は、r6gd ノードタイプで実行されるクラスターではサポートされていません。
+ データ階層化クラスター (r6gd ノードタイプを使用するクラスターなど) からデータ階層化を使用しないクラスター (r6g ノードタイプを使用するクラスターなど) へのスケーリングはサポートされていません。詳細については、「[ElastiCache のスケーリング](Scaling.md)」を参照してください。
+ 自動スケーリングは、Valkey バージョン 7.2 以降、Redis OSS バージョン 7.0.7 以降のデータ階層化を使用するクラスターでサポートされています。詳細については、[Valkey クラスターと Redis OSS クラスターの自動スケーリング](AutoScaling.md)を参照してください。
+ データ階層化では、`volatile-lru`、`allkeys-lru`、`volatile-lfu`、`allkeys-lfu`、および `noeviction` の maxmemory ポリシーのみがサポートされます。
+ 分岐なしの保存は、Valkey バージョン 7.2 以降、Redis OSS バージョン 7.0.7 以降でサポートされています。詳細については、「[同期とバックアップの実装方法](Replication.Redis.Versions.md)」を参照してください。
+ 128 MiB を超える項目は SSD に移動されません。
+ Valley 8.1 以降では、キーと値のサイズが 40 バイト未満の項目は SSD に移動されません。

## 料金
<a name="data-tiering-pricing"></a>

R6gd ノードは R6g ノード (メモリのみ) と比較して 4.8 倍の合計容量 (メモリ \$1 SSD) を備えており、最大使用率で実行すると 60 % 以上のコスト削減を実現できます。詳細については、[ElastiCache の料金](https://aws.amazon.com/elasticache/pricing/)を参照してください。

## モニタリング
<a name="data-tiering-monitoring"></a>

ElastiCache は、データ階層化を使用するクラスターのパフォーマンスをモニタリングするために特別に設計されたメトリクスを提供します。SSD と比較した DRAM 内の項目の比率をモニタリングするには、「[Valkey と Redis OSS のメトリクス](CacheMetrics.Redis.md)」の `CurrItems` メトリクスを使用できます。パーセンテージは次のように計算できます: (ディメンション: 階層 = メモリ \$1 100 の CurrItems) / (ディメンションフィルターなしの CurrItems)。

 設定されたエビクションポリシーで許可されている場合、メモリ内の項目の割合が 5% を下回ると、ElastiCache は項目のエビクションを開始します。エビクションなしのポリシーで設定されたノードでは、書き込みオペレーションはメモリ不足エラーを受け取ります。

 メモリ内の項目の割合が 5% を下回った場合は、クラスターモードが有効なクラスターのスケールアウト、またはクラスタモードが無効なクラスターのスケールアップを検討することをお勧めします。スケーリングの詳細については、「[Valkey または Redis OSS (クラスターモードが有効) クラスターのスケーリング](scaling-redis-cluster-mode-enabled.md)」を参照してください。データ階層化を使用する Valkey または Redis OSS クラスターのメトリクスの詳細については、「[Valkey と Redis OSS のメトリクス](CacheMetrics.Redis.md)」を参照してください。

## データ階層化の使用
<a name="data-tiering-enabling"></a>

### AWS マネジメントコンソール を使用したデータ階層化の使用
<a name="data-tiering-enabling-console"></a>

レプリケーショングループの一部としてクラスターを作成する場合は、r6gd ファミリーから *cache.r6gd.xlarge* などのノードタイプを選択し、データ階層化を使用します。ノードタイプを選択すると、データ階層化が自動的に有効になります。

クラスター作成の詳細については、[Valkey または Redis OSS 用のクラスターの作成](Clusters.Create.md) を参照してください。

### AWS CLI を使用したデータ階層化の有効化
<a name="data-tiering-enabling-cli"></a>

AWS CLI を使用してレプリケーショングループを作成する場合は、r6gd ファミリーから *cache.r6gd.xlarge* などのノードタイプを選択し、`--data-tiering-enabled` パラメータを設定してデータ階層化を使用します。

r6gd ファミリーからノードタイプを選択する際に、データ階層化をオプトアウトすることはできません。`--no-data-tiering-enabled` パラメータを設定すると、オペレーションは失敗します。

Linux、macOS、Unix の場合:

```
aws elasticache create-replication-group \
   --replication-group-id redis-dt-cluster \
   --replication-group-description "Redis OSS cluster with data tiering" \
   --num-node-groups 1 \
   --replicas-per-node-group 1 \
   --cache-node-type cache.r6gd.xlarge \
   --engine redis \   
   --cache-subnet-group-name default \
   --automatic-failover-enabled \
   --data-tiering-enabled
```

Windows の場合:

```
aws elasticache create-replication-group ^
   --replication-group-id redis-dt-cluster ^
   --replication-group-description "Redis OSS cluster with data tiering" ^
   --num-node-groups 1 ^
   --replicas-per-node-group 1 ^
   --cache-node-type cache.r6gd.xlarge ^
   --engine redis ^   
   --cache-subnet-group-name default ^
   --automatic-failover-enabled ^
   --data-tiering-enabled
```

このオペレーションを実行すると、以下のようなレスポンスが表示されます。

```
{
    "ReplicationGroup": {
        "ReplicationGroupId": "redis-dt-cluster",
        "Description": "Redis OSS cluster with data tiering",
        "Status": "creating",           
        "PendingModifiedValues": {},
        "MemberClusters": [
            "redis-dt-cluster"
        ],
        "AutomaticFailover": "enabled",
        "DataTiering": "enabled",
        "SnapshotRetentionLimit": 0,
        "SnapshotWindow": "06:00-07:00",
        "ClusterEnabled": false,
        "CacheNodeType": "cache.r6gd.xlarge",       
        "TransitEncryptionEnabled": false,
        "AtRestEncryptionEnabled": false
    }
}
```

## データ階層化を有効にして、バックアップからクラスターにデータを復元する
<a name="data-tiering-enabling-snapshots"></a>

(コンソール)、(AWS CLI) または (ElastiCache API) を使用して、データ階層化を有効にした新しいクラスターにバックアップを復元できます。r6gd ファミリーのノードタイプを使用してクラスターを作成すると、データ階層化が有効になります。

### データ階層化を有効にして、バックアップからクラスターにデータを復元する (コンソール)
<a name="data-tiering-enabling-snapshots-console"></a>

**データ階層化を有効にして新しいクラスターにバックアップを復元するには (コンソール)**

1. AWS マネジメントコンソール にサインインして、ElastiCache コンソール ([https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/)) を開きます。

1. ナビゲーションペインで **[バックアップ]** を選択します。

1. バックアップのリストで、復元元のバックアップ名の左にあるチェックボックスをオンにします。

1. **[復元]** を選択します。

1. **[クラスターの復元]** ダイアログボックスに入力します。すべての [**Required**] (必須) フィールドと、デフォルト値から変更するその他のフィールドに入力します。

   1. **[クラスター ID]** – 必須。新しいクラスターの名前。

   1. **[クラスターモードが有効 (スケールアウト)]** – Valkey または Redis OSS (クラスターモードが有効) クラスターの場合はこれを選択します。

   1. **Node Type** - **cache.r6gd.xlarge** または r6gd ファミリーの他のノードタイプを指定します。

   1. **[シャード数]** – 新しいクラスター (API/CLI: ノードグループ) に必要なシャード数を選択します。

   1. [**Replicas per Shard**] – 各シャードに必要なリードレプリカのノード数を選択します。

   1. [**Slots and keyspaces**] – シャード間でキーを分散する方法を選択します。キーの分散を指定する場合は、各シャードのキー範囲を指定するテーブルを作成します。

   1. [**Availability zone(s)**] – クラスターのアベイラビリティーゾーンの選択方法を指定します。

   1. [**Port**] – 新しいクラスターで別のポートを使用する場合のみ、これを選択します。

   1. [**Choose a VPC**] – このクラスターを作成する VPC を選択します。

   1. **[パラメータグループ]** – 選択したノードタイプの Valkey または Redis OSS オーバーヘッドに十分なメモリを予約するパラメータグループを選択します。

1. すべての設定が正しいことを確認したら、**[作成]** を選択します。

クラスター作成の詳細については、[Valkey または Redis OSS 用のクラスターの作成](Clusters.Create.md) を参照してください。

### データ階層化を有効にして、バックアップからクラスターにデータを復元する (AWS CLI)
<a name="data-tiering-enabling-snapshots-cli"></a>

AWS CLI を使用してレプリケーショングループを作成する場合、*cache.r6gd.xlarge* などの r6gd ファミリーからノードタイプを選択し、`--data-tiering-enabled` パラメータを設定することで、デフォルトでデータ階層化が使用されます。

r6gd ファミリーからノードタイプを選択する際に、データ階層化をオプトアウトすることはできません。`--no-data-tiering-enabled` パラメータを設定すると、オペレーションは失敗します。

Linux、macOS、Unix の場合:

```
aws elasticache create-replication-group \
   --replication-group-id redis-dt-cluster \
   --replication-group-description "Redis OSS cluster with data tiering" \
   --num-node-groups 1 \
   --replicas-per-node-group 1 \
   --cache-node-type cache.r6gd.xlarge \
   --engine redis \   
   --cache-subnet-group-name default \
   --automatic-failover-enabled \
   --data-tiering-enabled \
   --snapshot-name my-snapshot
```

Linux、macOS、Unix の場合:

```
aws elasticache create-replication-group ^
   --replication-group-id redis-dt-cluster ^
   --replication-group-description "Redis OSS cluster with data tiering" ^
   --num-node-groups 1 ^
   --replicas-per-node-group 1 ^
   --cache-node-type cache.r6gd.xlarge ^
   --engine redis ^   
   --cache-subnet-group-name default ^
   --automatic-failover-enabled ^
   --data-tiering-enabled ^
   --snapshot-name my-snapshot
```

このオペレーションを実行すると、以下のようなレスポンスが表示されます。

```
{
    "ReplicationGroup": {
        "ReplicationGroupId": "redis-dt-cluster",
        "Description": "Redis OSS cluster with data tiering",
        "Status": "creating",           
        "PendingModifiedValues": {},
        "MemberClusters": [
            "redis-dt-cluster"
        ],
        "AutomaticFailover": "enabled",
        "DataTiering": "enabled",
        "SnapshotRetentionLimit": 0,
        "SnapshotWindow": "06:00-07:00",
        "ClusterEnabled": false,
        "CacheNodeType": "cache.r6gd.xlarge",        
        "TransitEncryptionEnabled": false,
        "AtRestEncryptionEnabled": false
    }
}
```

# ElastiCache でクラスターを準備する
<a name="Clusters.Prepare"></a>

ElastiCache コンソール、AWS CLI、または ElastiCache API を使用してクラスターを作成する手順を以下に示します。

を使用してElastiCache クラスターを作成することもできます。。[AWS CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html)詳細については、「AWS クラウド形成ユーザーガイド」の「[AWS::ElastiCache::CacheCluster](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticache-cache-cluster.html)」を参照してください。これには、そのアプローチの実装方法に関するガイダンスが含まれています。

クラスターまたはレプリケーショングループを作成するときは常に、すぐにアップグレードまたは変更が必要にならないように、いくつかの準備作業をすることが推奨されます。

**Topics**
+ [ElastiCache クラスター要件の決定](cluster-create-determine-requirements.md)
+ [ノードサイズの選択](CacheNodes.SelectSize.md)

# ElastiCache クラスター要件の決定
<a name="cluster-create-determine-requirements"></a>

**準備**  
以下の質問に対する回答を確認することで、ElastiCache クラスターの作成を円滑化できます。
+ どのノードインスタンスタイプが必要ですか。

  インスタンスのノードタイプを選択する際のガイダンスについては、「[ノードサイズの選択](CacheNodes.SelectSize.md)」を参照してください。
+ Amazon VPC に基づいて Virtual Private Cloud (VPC) でクラスターを起動しますか?
**重要**  
VPC でクラスターを起動する場合、クラスターの作成を開始する前に、同じ VPC にサブネットグループを作成する必要があります。詳細については、「[サブネットおよびサブネットグループ](SubnetGroups.md)」を参照してください。  
ElastiCache は、Amazon EC2 を使用して AWS 内からアクセスからアクセスするためのものです。ただし、Amazon VPC に基づく VPC で起動し、クラスターが VPC にある場合、AWS の外部アクセスを提供できます。詳細については、「[外部から ElastiCache リソースにアクセスするAWS](accessing-elasticache.md#access-from-outside-aws)」を参照してください。
+ パラメーター値をカスタマイズする必要がありますか。

  その場合、カスタムパラメータグループを作成します。詳細については、「[ElastiCache パラメータグループを作成する](ParameterGroups.Creating.md)」を参照してください。

   Valkey または Redis OSS を実行している場合は、`reserved-memory` または `reserved-memory-percent` を設定することを検討してください。詳細については、「[Valkey および Redis OSS の予約済みメモリを管理する](redis-memory-management.md)」を参照してください。
+ 独自の *VPC セキュリティグループ*を作成する必要がありますか。

  詳細については、「[VPC のセキュリティ](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Security.html)」を参照してください。
+ 耐障害性をどのようにして導入しますか。

  詳細については、「[障害の軽減](disaster-recovery-resiliency.md#FaultTolerance)」を参照してください。

**Topics**
+ [ElastiCache のメモリとプロセッサの要件](#cluster-create-determine-requirements-memory)
+ [Memcached クラスターの構成](#memcached-cluster-configuration)
+ [Valkey および Redis OSS クラスターの設定](#redis-cluster-configuration)
+ [ElastiCache のスケーリング要件](#cluster-create-determine-requirements-scaling)
+ [ElastiCache のアクセス要件](#cluster-create-determine-requirements-access)
+ [ElastiCache でのリージョン、アベイラビリティーゾーン、およびローカルゾーンの要件](#cluster-create-determine-requirements-region)

## ElastiCache のメモリとプロセッサの要件
<a name="cluster-create-determine-requirements-memory"></a>

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

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

## Memcached クラスターの構成
<a name="memcached-cluster-configuration"></a>

ElastiCache for Memcached クラスターは、1～60 個のノードで構成されます。Memcached クラスター内のデータは、クラスター内のノード間で分割されます。アプリケーションは、エンドポイントと呼ばれるネットワークアドレスを使用して Memcached クラスターに接続します。Memcached クラスター内の各ノードには固有のエンドポイントがあり、アプリケーションはこれを使用して特定のノードに対して読み取りと書き込みを行います。ノードエンドポイントに加えて、Memcached クラスター自体には*設定エンドポイント*と呼ばれるエンドポイントがあります。アプリケーションはこのエンドポイントを使用してクラスターの読み取りまたは書き込みを行うことができ、どのノードに対して読み取りまたは書き込みを行うかの判断は 自動検出 に任せることができます。

![\[Memcached クラスターがクラスター内のノード間でどのように分割されるかを示す画像。\]](http://docs.aws.amazon.com/ja_jp/AmazonElastiCache/latest/dg/images/ElastiCache-Cluster-Memcached.png)


詳細については、「[ElastiCache でのクラスターの管理](Clusters.md)」を参照してください。

## Valkey および Redis OSS クラスターの設定
<a name="redis-cluster-configuration"></a>

Valkey と Redis OSS に対応した ElastiCache クラスターは、0～500 個のシャード (ノードグループとも呼ばれる) で構成されます。Valkey または Redis OSS クラスター内のデータは、クラスター内のシャード間で分割されます。アプリケーションは、エンドポイントと呼ばれるネットワークアドレスを使用して Valkey または Redis OSS クラスターに接続します。Valkey または Redis OSS のシャード内のノードは 2 つの役割のいずれかを担います。1 つは読み取り/書き込み可能なプライマリノード、他のすべては読み取り専用のセカンダリノード (リードレプリカとも呼ばれる) です。ノードエンドポイントに加えて、Valkey または Redis OSS クラスター自体には*設定エンドポイント*と呼ばれるエンドポイントがあります。アプリケーションはこのエンドポイントを使用してクラスターの読み取りまたは書き込みを行うことができ、どのノードに対して読み取りまたは書き込みを行うかの判断は ElastiCache for Redis OSS に任せることができます。

![\[無効モードと有効モードの Valkey または Redis OSS クラスターを比較する画像。\]](http://docs.aws.amazon.com/ja_jp/AmazonElastiCache/latest/dg/images/ElastiCacheClusters-Redis-ClustersRGs.png)


詳細については、「[ElastiCache でのクラスターの管理](Clusters.md)」を参照してください。

## ElastiCache のスケーリング要件
<a name="cluster-create-determine-requirements-scaling"></a>

すべてのクラスターは、新しい大きなノードタイプの新規クラスターを作成することでスケールアップすることができます。Memcached クラスターをスケールアップすると、新しいクラスターは空の状態で開始されます。Valkey または Redis OSS クラスターをスケールアップするときは、バックアップからシードすることにより、新しいクラスターを空の状態で開始するのを避けることができます。

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

詳細については、このガイドの「[ElastiCache のスケーリング](Scaling.md)」を参照してください。

## ElastiCache のアクセス要件
<a name="cluster-create-determine-requirements-access"></a>

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

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

## ElastiCache でのリージョン、アベイラビリティーゾーン、およびローカルゾーンの要件
<a name="cluster-create-determine-requirements-region"></a>

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

詳細については次を参照してください:
+ [ElastiCache のリージョンとアベイラビリティーゾーンの選択](RegionsAndAZs.md)
+ [ElastiCache での Local Zones の使用](Local_zones.md)
+ [障害の軽減](disaster-recovery-resiliency.md#FaultTolerance)

# ノードサイズの選択
<a name="CacheNodes.SelectSize"></a>

ElastiCache クラスターに選択するノードのサイズによって、コスト、パフォーマンス、耐障害性が変わります。

## ノードサイズ (Valkey および Redis OSS)
<a name="CacheNodes.SelectSize.redis"></a>

Graviton プロセッサの利点については、「[AWS Graviton プロセッサ](https://aws.amazon.com/pm/ec2-graviton/)」を参照してください。

以下の項目に回答することで、Valkey または Redis OSS の実装に必要な最小ノードタイプを決定できます。
+ 複数のクライアント接続によるスループット制限のあるワークロードを想定していますか?

  その場合、Redis OSS バージョン 5.0.6 以降を実行している場合は、Redis OSS エンジンの代わりに利用可能な CPU をクライアント接続のオフロードに使用する AWS の拡張 I/O 機能を使用すると、スループットとレイテンシーを向上させることができます。Redis OSS バージョン 7.0.4 以降を実行している場合、拡張 I/O に加え、拡張 I/O 多重化によってさらに高速化されます。この機能では、各専用ネットワーク I/O スレッドが複数のクライアントからのコマンドを Redis OSS エンジンにパイプライン処理し、Redis OSS の処理能力を活用してコマンドをバッチ処理します。ElastiCache for Redis OSS v7.1 以上では、拡張された I/O スレッド機能を強化して、プレゼンテーション層のロジックも処理できるようにしました。プレゼンテーション層とは、クライアント入力を読み取るだけでなく、入力を Redis OSS バイナリコマンド形式に解析する拡張 I/O スレッドを指します。これをメインスレッドに転送して実行することで、パフォーマンスが向上します。詳細については、[ブログ投稿](https://aws.amazon.com/blogs/database/achieve-over-500-million-requests-per-second-per-cluster-with-amazon-elasticache-for-redis-7-1/)と[サポート対象バージョン](VersionManagement.md#supported-engine-versions)のページを参照してください。
+ ごく一部のデータに定期的にアクセスするワークロードがありませんか。

  このような場合、Redis OSS エンジンバージョン 6.2 以降で実行していれば、r6gd ノードタイプを選択することでデータ階層化を活用できます。データ階層化によって、最も長く使用されていないデータが SSD に保存されます。データが取得される際にレイテンシーのコストがわずかに発生しますが、コスト削減によって相殺されます。詳細については、「[ElastiCache のデータ階層化](data-tiering.md)」を参照してください。

  詳細については、「[サポートされているノードの種類](CacheNodes.SupportedTypes.md)」を参照してください。
+ データに必要となる合計メモリ量。

  全般的な見積もりを得るには、キャッシュするアイテムのサイズを調べます。このサイズに、同時にキャッシュに保持するアイテムの数を掛けます。項目サイズを合理的に算出するには、まずキャッシュ項目をシリアル化して文字数をカウントします。その結果をクラスター内のシャードの数で割ります。

  詳細については、「[サポートされているノードの種類](CacheNodes.SupportedTypes.md)」を参照してください。
+ 実行している Redis OSS のバージョン。

  Redis OSS バージョン 2.8.22 より前では、フェイルオーバー、スナップショット、同期、およびレプリカをプライマリに昇格させるために、より多くのメモリを確保する必要があります。これは、十分な量のメモリを用意して、プロセスの実行時に生じるすべての書き込みに対応する必要があるためです。

  Redis OSS バージョン 2.8.22 以降では、分岐なしの保存プロセスが使用されているため、以前のプロセスよりも使用可能なメモリが少なくて済みます。

  詳細については次を参照してください:
  + [同期とバックアップの実装方法](Replication.Redis.Versions.md)
  + [Valkey または Redis OSS スナップショットを作成するのに十分なメモリがあることを確認する](BestPractices.BGSAVE.md)
+ アプリケーションでの書き込み負荷の大きさ。

  書き込み量が多いアプリケーションでは、スナップショットの作成時またはフェイルオーバー時に、データでは使用されないより多くの使用可能メモリが必要となります。`BGSAVE` プロセスが実行されるたびに、`BGSAVE` プロセス中に発生するすべての書き込みに対応するために、データによって使用されない十分なメモリが必要です。例えば、スナップショットを作成するとき、プライマリクラスターをクラスター内のレプリカと同期させるとき、AOF (Append-Only File) 機能を有効にするときです。また、レプリカをプライマリに昇格させるときです (マルチ AZ が有効になっている場合)。さらに、最悪の場合、プロセス中にすべてのデータが書き換えられるときです。この場合、データのみに必要なメモリの 2 倍のサイズのノードインスタンスが必要です。

  詳細については、「[Valkey または Redis OSS スナップショットを作成するのに十分なメモリがあることを確認する](BestPractices.BGSAVE.md)」を参照してください。
+ スタンドアロンの Valkey または Redis OSS (クラスターモードが無効) クラスターを実装するか、複数のシャードを持つ Valkey または Redis OSS (クラスターモードが有効) クラスターを実装するか。

**Valkey または Redis OSS (クラスターモードが無効) クラスター**  
Valkey または Redis OSS (クラスターモードが無効) クラスターを実装する場合は、ノードタイプがすべてのデータと前の項目で説明した必要なオーバーヘッドに対応できる必要があります。

  例えば、すべてのアイテムの合計サイズを 12 GB と見積もったします。この場合、13.3 GB のメモリを搭載した `cache.m3.xlarge` ノードまたは 13.5 GB のメモリを搭載した `cache.r3.large` ノードを使用できます。ただし、`BGSAVE` オペレーションではより多くのメモリが必要になる場合があります。書き込み負荷の高いアプリケーションの場合、メモリ要件を少なくとも 24 GB に倍増します。したがって、27.9 GB のメモリを搭載した `cache.m3.2xlarge` または 30.5 GB のメモリを搭載した `cache.r3.xlarge` を使用します。

**複数のシャードを持つ Valkey または Redis OSS (クラスターモードが有効)**  
複数のシャードを持つ Valkey または Redis OSS (クラスターモードが有効) クラスターを実装する場合は、ノードタイプが `bytes-for-data-and-overhead / number-of-shards` バイトのデータに対応できる必要があります。

  例えば、すべてのアイテムの合計サイズが 12 GB で、シャードが 2 つあると見積もったとします。この場合、6.05 GB のメモリ (12 GB / 2) を搭載した `cache.m3.large` ノードを使用できます。ただし、`BGSAVE` オペレーションではより多くのメモリが必要になる場合があります。書き込み負荷の高いアプリケーションの場合、メモリ要件をシャードあたり少なくとも 12 GB に倍増します。したがって、13.3 GB のメモリを搭載した `cache.m3.xlarge` または 13.5 GB のメモリを搭載した `cache.r3.large` を使用します。
+ Local Zones を使用していますか?

[[Local Zones](Local_zones.md)] を使用すると、ElastiCache クラスターなどのリソースをユーザーの近くの複数の場所に配置できます。ただし、ノードサイズを選択する場合、容量要件にかかわらず、現時点では、使用可能なノードサイズは次のサイズに制限されることに注意してください。
  + 現行世代: 

    **M5 ノードタイプ:** `cache.m5.large`、`cache.m5.xlarge`、`cache.m5.2xlarge`、`cache.m5.4xlarge`、`cache.m5.12xlarge`、`cache.m5.24xlarge`

    **R5 ノードタイプ:** `cache.r5.large`、`cache.r5.xlarge`、`cache.r5.2xlarge`、`cache.r5.4xlarge`、`cache.r5.12xlarge`、`cache.r5.24xlarge`

    **T3 ノードタイプ:** `cache.t3.micro`、`cache.t3.small`、`cache.t3.medium`

キャッシュクラスターが実行中であるときに、CloudWatch に発行される、メモリの使用状況、プロセッサの使用率、キャッシュヒット、およびキャッシュミスのメトリクスをモニタリングできます。クラスターに必要なヒット率がないことや、キーが頻繁に削除されていることに気付くことがあります。これらの場合は、より高い仕様の CPU とメモリの異なるノードサイズを選択できます。

CPU 使用率をモニタリングする際は、Valkey または Redis OSS はシングルスレッドであることに注意してください。したがって、レポートされた CPU 使用率に CPU コアの数を掛けて、実際の使用率を得ます。例えば、4 つのコアの CPU での使用率が 20 パーセントとレポートされた場合、実際には 1 つのコアの Redis OSS が使用率 80 パーセントで稼働しています。

## ノードサイズ (Memcached)
<a name="CacheNodes.SelectSize.Mem"></a>

Memcached クラスターには 1 つまたは複数のノードが含まれ、クラスターのデータは複数のノードに分割されます。このため、クラスターで必要なメモリとノードで必要なメモリには関連性がありますが、同じではありません。ノードの数を減らすか、より多くのより小さなノードを確保することにより、必要なクラスターメモリの容量を実現できます。また、ニーズの変化に応じてクラスターへのノードの追加や削除を行い、必要なものだけに支払うことができます。

クラスターの合計メモリ容量は、システムのオーバーヘッドを差し引いた後に、クラスター内のキャッシュノードの数に各ノードの RAM 容量を乗算して計算されます。各ノードの容量はノードタイプに基づいています。

```
cluster_capacity = number_of_nodes * (node_capacity - system_overhead)
```

クラスター内のノード数は、Memcached を実行するクラスターの可用性の重要な要素です。1 つのキャッシュノードで障害が発生した場合、アプリケーションの可用性とバックエンドデータベースの負荷に影響を与える可能性があります。そのような場合、ElastiCache によって、障害が発生したノードの交換がプロビジョニングされ、再配置されます。この可用性への影響を小さくするには、使用している大容量のノードを減らすのではなく、メモリとコンピューティングの容量をより小さい容量のより多くのノードに分散させます。

35 GB のキャッシュメモリが必要なシナリオでは、以下のいずれかを設定できます。
+ `cache.t2.medium`それぞれ 3.22 GB のメモリと 2 つのスレッドを持つ 11 の ノード = 35.42 GB、22 スレッド。
+ `cache.m4.large`それぞれ 6.42 GB のメモリと 2 つのスレッドを持つ 6 つの ノード = 38.52 GB、12 スレッド。
+ `cache.r4.large`それぞれ 12.3 GB のメモリと 2 つのスレッドを持つ 3 つの ノード = 36.90 GB、6 スレッド。
+ `cache.m4.xlarge`それぞれ 14.28 GB のメモリと 4 つのスレッドを持つ 3 つの ノード = 42.84 GB、12 スレッド。


**ノードオプションの比較**  
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/AmazonElastiCache/latest/dg/CacheNodes.SelectSize.html)

これらのオプションは、それぞれ同様のメモリ容量を提供しますが、コンピューティング容量とコストは異なります。特定のオプションのコストを比較するには、「[Amazon ElastiCache の料金表](https://aws.amazon.com/elasticache/pricing/)」を参照してください。

Memcached を実行するクラスターでは、各ノードの使用可能なメモリの一部は接続のオーバーヘッド用に使用されます。詳細については、「[Memcached 接続オーバーヘッド](ParameterGroups.Engine.md#ParameterGroups.Memcached.Overhead)」を参照してください。

複数のノードを使用して、それらの間でキーを分散させる必要があります。各ノードには、独自のエンドポイントがあります。エンドポイント管理を簡単にするには、ElastiCache の自動検出機能を使用して、クライアントプログラムがクラスターのすべてのノードを自動的に識別できるようにします。詳細については、「[クラスター (Memcached) 内のノードを自動的に識別する](AutoDiscovery.md)」を参照してください。

場合によっては、必要な容量がわからないことがあります。その場合、テストのために、1 つの `cache.m5.large` ノードから始めることをお勧めします。次に、Amazon CloudWatch に発行されている ElastiCache メトリクスを使用して、メモリ使用量、CPU 使用率、キャッシュヒット率をモニタリングします。ElastiCache の CloudWatch メトリクスの詳細については、「[CloudWatch メトリクスの使用状況のモニタリング](CacheMetrics.md)」を参照してください。本稼働のより大きな優れたワークロードの場合は、R5 ノードが最高のパフォーマンスと RAM のコストバリューを提供します。

クラスターに必要なヒット率がない場合は、ノードを簡単に追加して、クラスターで使用可能なメモリの合計を増やすことができます。

クラスターが CPU の制約を受けているが、十分なヒット率がある場合は、処理能力のより高いノードタイプで新しいクラスターを設定します。

# Valkey または Redis OSS 用のクラスターの作成
<a name="Clusters.Create"></a>

次の例は、AWS マネジメントコンソールAWS CLIと ElastiCache API を使用して Valkey または Redis OSS クラスターを作成する方法を示しています。

## Valkey または Redis OSS (クラスターモードが無効) クラスターの作成 (コンソール)
<a name="Clusters.Create.CON.Redis"></a>

ElastiCache は、Valkey または Redis OSS エンジンを使用する場合にレプリケーションをサポートします。データが Valkey または Redis OSS の読み取り/書き込みプライマリクラスターに書き込まれるときと、読み取り専用セカンダリクラスターに伝播されるときのレイテンシーをモニタリングするため、ElastiCache は特殊なキー `ElastiCacheMasterReplicationTimestamp` をクラスターに追加します。このキーは、協定世界時 (UTC) の現在の時刻です。Valkey または Redis OSS クラスターが後でレプリケーショングループに追加される可能性があるため、このキーは、最初はレプリケーショングループのメンバーではないクラスターであっても、すべての Valkey または Redis OSS クラスターに含まれます。レプリケーショングループの詳細については、「[レプリケーショングループを使用する高可用性](Replication.md)」を参照してください。

Valkey または Redis OSS (クラスターモードが無効) クラスターを作成するには、「[Valkey (クラスターモードが無効) クラスターの作成 (コンソール)](SubnetGroups.designing-cluster-pre.valkey.md#Clusters.Create.CON.valkey-gs)」のステップに従います。

クラスターのステータスが [*available*] になり次第、Amazon EC2 にアクセス権を付与して接続し、使用を開始できます。詳細については、「[ステップ 3. クラスターへのアクセスを許可する](SubnetGroups.designing-cluster-pre.valkey.md#GettingStarted.AuthorizeAccess.valkey)」および「[ステップ 4. クラスターのノードに接続する](SubnetGroups.designing-cluster-pre.valkey.md#GettingStarted.ConnectToCacheNode.valkey)」を参照してください。

**重要**  
クラスターが使用可能になった直後から、クラスターがアクティブである間は (実際に使用していない場合でも)、時間に応じた料金が発生します。このクラスターに対する課金を中止するには、クラスターを削除する必要があります。「[ElastiCache でのクラスターの削除](Clusters.Delete.md)」を参照してください。

## Valkey または Redis OSS (クラスターモードが有効) クラスターの作成 (コンソール)
<a name="Clusters.Create.CON.RedisCluster"></a>

Redis OSS 3.2.4 以降を実行している場合は、Valkey または Redis OSS (クラスターモードが有効) クラスターを作成できます。Valkey または Redis OSS (クラスターモードが有効) クラスターでは、1～500 個のシャード (API/CLI: ノードグループ) 間でデータを分割できます。ただし、いくつかの制限があります。Valkey または Redis OSS (クラスターモードが無効) と Valkey または Redis OSS (クラスターモードが有効) の比較については、「[サポートされているエンジンとバージョン](VersionManagement.md#supported-engine-versions)」を参照してください。

**ElastiCache コンソールを使用して Valkey または Redis OSS (クラスターモードが有効) クラスターを作成するには**

1. にサインインAWS マネジメントコンソールし、[https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/) で Amazon ElastiCache コンソールを開きます。

1. 右上隅のリストから、このクラスターを起動するAWSリージョンを選択します。

1. ナビゲーションペインで、**[Get started]** (開始) を選択します。

1. **[VPC の作成]** を選択し、「[Virtual Private Cloud (VPC) の作成](VPCs.CreatingVPC.md)」のステップに従います。

1. ElastiCache ダッシュボードページで、**[クラスターを作成]** を選択して、**[Valkey クラスターを作成]** または **[Redis OSS クラスターを作成]** を選択します。

1. **[クラスター設定]** で、以下を実行します。

   1. **[Configure and create a new cluster]** (新しいクラスターを設定および作成) を選択します。

   1. **[Cluster mode]** (クラスターモード) で、**[Enabled]** (有効) を選択します。

   1. **[Cluster info]** (クラスター情報) で、**[Name]** (名前) の値を入力します。

   1. (オプション) **[Description]** (説明) の値を入力します。

1. **[Location]** (場所):

------
#### [ AWS Cloud  ]

   1. **[AWSクラウド]** で、**[マルチ AZ]** および **[自動フェイルオーバー]** のデフォルト設定を受け入れることをお勧めします。詳細については、「[マルチ AZ による ElastiCache for Redis OSS のダウンタイムの最小化](AutoFailover.md)」を参照してください。

   1. **[Cluster settings]** (クラスター設定)

      1. **[Engine version]** (エンジンバージョン) で、使用可能なバージョンを選択します。

      1. **[Port]** (ポート) で、デフォルトポート 6379 を使用します。異なるポートを使用する理由がある場合は、そのポート番号を入力します。

      1. **[パラメータグループ]** で、パラメータグループを選択するか、新しいパラメータグループを作成します。パラメータグループはクラスターのランタイムパラメータを制御します。パラメータグループの詳細については、「[Valkey および Redis OSS パラメータ](ParameterGroups.Engine.md#ParameterGroups.Redis)」および「[ElastiCache パラメータグループを作成する](ParameterGroups.Creating.md)」を参照してください。
**注記**  
パラメータグループを選択してエンジン設定値を設定すると、そのパラメータグループが Global Datastore 内のすべてのクラスターに適用されます。**[パラメータグループ]** ページの yes/no **[グローバル]** 属性は、パラメータグループがグローバルデータストアの一部であるかどうかを示します。

      1. **[ノードタイプ]** で、下向き矢印 (![\[Downward-pointing triangle icon, typically used to indicate a dropdown menu.\]](http://docs.aws.amazon.com/ja_jp/AmazonElastiCache/latest/dg/images/ElastiCache-DnArrow.png)) を選択します。**[ノードタイプの変更]** ダイアログボックスで、必要なノードタイプの **[インスタンスファミリー]** の値を選択します。次に、このクラスターで使用するノードタイプを選択し、**[保存]** を選択します。

         詳細については、「[ノードサイズの選択](CacheNodes.SelectSize.md)」を参照してください。

         r6gd ノードタイプを選択すると、データ階層化が自動的に有効になります。詳細については、「[ElastiCache のデータ階層化](data-tiering.md)」を参照してください。

      1. **[シャード数]** で、この Valkey または Redis OSS (クラスターモードが有効) クラスターに必要なシャード (パーティション/ノードグループ) の数を選択します。

         Valkey または Redis OSS (クラスターモードが有効) の一部のバージョンでは、クラスター内のシャード数を動的に変更できます。
         + **Redis OSS 3.2.10 以降** – クラスターで Redis OSS 3.2.10 以降のバージョンを実行している場合は、クラスター内のシャード数を動的に変更できます。詳細については、「[Valkey または Redis OSS (クラスターモードが有効) クラスターのスケーリング](scaling-redis-cluster-mode-enabled.md)」を参照してください。
         + **その他の Redis OSS バージョン** – クラスターで 3.2.10 より前の Redis OSS バージョンを実行している場合は、別の方法があります。この場合、クラスター内のシャード数を変更するには、新しいシャード数を使用して新しいクラスターを作成します。詳細については、「[バックアップから新しいキャッシュへの復元](backups-restoring.md)」を参照してください。

      1. **シャード当たりのレプリカ数** で、各シャードに必要なリードレプリカのノード数を選択します。

         Valkey または Redis OSS (クラスターモードが有効) には、次の制限があります。
         + マルチ AZ が有効になっている場合は、シャードごとに少なくとも 1 つのレプリカがあることを確認してください。
         + コンソールを使用してクラスターを作成する場合、シャードごとのレプリカ数は同じになります。
         + シャードあたりのリードレプリカ数は固定され、変更できません。シャード (API/CLI: ノードグループ) あたりのレプリカ数を増減する必要がある場合は、新しいレプリカ数で新しいクラスターを作成する必要があります。詳細については、「[チュートリアル: 外部で作成されたバックアップで新しいノードベースのクラスターをシードする](backups-seeding-redis.md)」を参照してください。

   1. **[Connectivity]** (接続) で

      1. **[Network type]** (ネットワークタイプ) で、このクラスターがサポートする IP バージョンを選択します。

      1. [**Subnet groups**] (サブネットグループ) で、このクラスターに適用するサブネットを選択します。ElastiCache はそのキャッシュサブネットグループを使用して、そのサブネット内でノードに関連付けるサブネットおよび IP アドレスを選択します。ElastiCache クラスターでは、デュアルスタックモードで動作するには IPv4 アドレスと IPv6 アドレスの両方が割り当てられたデュアルスタックサブネットが必要であり、IPv6 専用として動作するには IPv6 専用サブネットが必要です。

         新しいサブネットグループを作成するときは、そのサブネットグループが属する **VPC ID** を入力します。

         **[Discovery IP type]** (検出 IP タイプ) を選択します。選択したプロトコルの IP アドレスのみが返されます。

         詳細については、以下を参照してください。
         + [ElastiCache でネットワークタイプを選択する](network-type.md).
         + [VPC にサブネットを作成します](https://docs.aws.amazon.com/vpc/latest/userguide/working-with-vpcs.html#AddaSubnet)。

         [ElastiCache での Local Zones の使用](Local_zones.md) である場合は、ローカルゾーンにあるサブネットを作成または選択する必要があります。

         詳細については、「[サブネットおよびサブネットグループ](SubnetGroups.md)」を参照してください。

   1. **[Availability zone placements]** (アベイラビリティーゾーンの配置) には 2 つのオプションがあります。
      + **[指定なし]** – ElastiCache がアベイラビリティーゾーンを選択します。
      + [**アベイラビリティーゾーンの指定**] – 各クラスターに対するアベイラビリティーゾーンを指定します。

        アベイラビリティーゾーンの指定を選択した場合、クラスターのシャードごとにリストからアベイラビリティーゾーンを選択します。

      詳細については、「[ElastiCache のリージョンとアベイラビリティーゾーンの選択](RegionsAndAZs.md)」を参照してください。

   1. **[Next]** (次へ) を選択します。

   1. **[Valkey の詳細設定]** または **[Redis OSS の詳細設定]**、または 

      1. **[Security]** (セキュリティ): 

        1. データを暗号化するには、次のオプションがあります。
           + **保管時の暗号化** – ディスクに保存されているデータの暗号化を有効にします。詳細については、「[保管時の暗号化](at-rest-encryption.md)」を参照してください。
**注記**  
**カスタマーマネージド KMS AWSキーを選択し、キーを選択することで**、別の暗号化キーを指定できます。詳細については、「[AWS KMS のカスタマー管理の CMK の使用](at-rest-encryption.md#using-customer-managed-keys-for-elasticache-security)」を参照してください。
           + [**転送中の暗号化**] – 転送中のデータの暗号化を有効にします。詳細については、「[転送中の暗号化](in-transit-encryption.md)」を参照してください。Valkey 7.2 以降、Redis OSS 6.0 以降では、転送中の暗号化を有効にすると、次の **[アクセスコントロール]** オプションのいずれかを指定するよう求められます。
             + **アクセスコントロールなし** — これがデフォルトの設定です。これは、クラスターへのユーザーアクセスに制限がないことを示します。
             + [**ユーザーグループのアクセスコントロールリスト**] — クラスターにアクセスできるユーザーのセットが定義されているユーザーグループを選択します。詳細については、「[コンソールおよび CLI を使用したユーザーグループの管理](Clusters.RBAC.md#User-Groups)」を参照してください。
             + **[認証デフォルトユーザー]** – Valkey または Redis OSS サーバーの認証メカニズム。詳細については、「[AUTH](auth.md)」を参照してください。
           + **[認証]** – Valkey または Redis OSS サーバーの認証メカニズム。詳細については、「[AUTH](auth.md)」を参照してください。
**注記**  
3.2.6 以降の Redis OSS バージョン (バージョン 3.2.10 を除く) では、[認証] のみがオプションとなります。

        1. **セキュリティグループ** で、このクラスターに必要なセキュリティグループを選択します。*セキュリティグループ*は、クラスターへのネットワークアクセスを制御するためのファイアウォールとして機能します。VPC のデフォルトのセキュリティグループを使用するか、新しいセキュリティグループを作成できます。

           VPC セキュリティグループの詳細については、*Amazon VPC ユーザーガイド*の「[VPC のセキュリティグループ](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html)」を参照してください。

   1. 自動バックアップを定期的にスケジュールする場合は、**[自動バックアップの有効化]** を選択し、自動バックアップを保持して自動的に削除するまでの日数を入力します。自動バックアップを定期的にスケジュールしない場合は、**[自動バックアップを有効化]** チェックボックスをオフにします。いずれの場合も、常に手動バックアップを作成するオプションがあります。

      バックアップと復元の詳細については、「[スナップショットおよび復元](backups.md)」を参照してください。

   1. (オプション) メンテナンスウィンドウを指定します。*[メンテナンスウィンドウ]* は、ElastiCache がクラスターのシステムメンテナンスを毎週スケジュールする時間の長さ (通常は 1 時間単位) です。ElastiCache がメンテナンスの日時を選択することを許可するか (*[No preference]* (指定なし))、自分で日時と期間を選択できます (*[Specify maintenance window]* (メンテナンスウィンドウを指定))。リストから *[メンテナンス期間を指定]* を選択した場合は、メンテナンス期間の*開始日*、*開始時刻*および*所要時間* (時間単位) を選択します。すべての時刻は協定世界時 (UCT) です。

      詳細については、「[ElastiCache クラスターメンテナンスの管理](maintenance-window.md)」を参照してください。

   1. (オプション) **[ログ]**:
      + [**ログの形式**] の下で、[**テキスト**] または [**JSON**] を選択します。
      + **[送信先のタイプ]** の下で、**[CloudWatch Logs]** または **[Kinesis Firehose]** を選択します。
      + **[ログの送信先]** の下で、**[新規作成]** を選択して CloudWatch Logs ロググループ名または Firehose ストリーム名を入力するか、**[既存の選択]** を選択してから CloudWatch Logs ロググループ名または Firehose ストリーム名を選択します。

   1. **[Tags]** (タグ) で、クラスターと他の ElastiCache リソースを管理しやすくするために、タグ形式で各リソースに独自のメタデータを割り当てることができます。詳細については、「[ElastiCache リソースのタグ付け](Tagging-Resources.md)」を参照してください。

   1. **[次へ]** をクリックします。

   1. すべてのエントリと選択を確認し、必要な修正を行います。準備が完了したら、**[Create]** (作成) を選択します。

------
#### [ On premises ]

   1. **[On premises]** (オンプレミス) では、**[Auto-failover]** (自動フェイルオーバー) を有効のままにしておくことをお勧めします。詳細については、「[マルチ AZ による ElastiCache for Redis OSS のダウンタイムの最小化](AutoFailover.md)」を参照してください

   1. 「[Outposts の使用](ElastiCache-Outposts.md)」のステップに従います。

------

ElastiCache API を使用するか、ElastiCache コンソールAWS CLIの代わりに同等のものを作成するには、以下を参照してください。
+ API: [CreateReplicationGroup](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_CreateReplicationGroup.html)
+ CLI: [create-replication-group](https://docs.aws.amazon.com/cli/latest/reference/elasticache/create-replication-group.html)

クラスターのステータスが 使用可能** になり次第、EC2 にアクセス権を付与して接続し、使用を開始できます。詳細については、「[ステップ 3. クラスターへのアクセスを許可する](SubnetGroups.designing-cluster-pre.valkey.md#GettingStarted.AuthorizeAccess.valkey)」および「[ステップ 4. クラスターのノードに接続する](SubnetGroups.designing-cluster-pre.valkey.md#GettingStarted.ConnectToCacheNode.valkey)」を参照してください。

**重要**  
クラスターが使用可能になった直後から、クラスターがアクティブである間は (実際に使用していない場合でも)、時間に応じた料金が発生します。このクラスターに対する課金を中止するには、クラスターを削除する必要があります。「[ElastiCache でのクラスターの削除](Clusters.Delete.md)」を参照してください。

## クラスターの作成 (AWS CLI)
<a name="Clusters.Create.CLI"></a>

を使用してクラスターを作成するにはAWS CLI、 `create-cache-cluster` コマンドを使用します。

**重要**  
クラスターが使用可能になった直後から、クラスターがアクティブである間は (実際に使用していない場合でも)、時間に応じた料金が発生します。このクラスターに対する課金を中止するには、クラスターを削除する必要があります。「[ElastiCache でのクラスターの削除](Clusters.Delete.md)」を参照してください。

### Valkey または Redis OSS (クラスターモードが無効) クラスターの作成 (CLI)
<a name="Clusters.Create.CLI.Redis"></a>

**Example — リードレプリカのない Valkey または Redis OSS (クラスターモードが無効) クラスター**  
次の CLI コードでは、レプリカのない Valkey または Redis OSS (クラスターモードが無効) クラスターを作成します。  
r6gd ファミリーのノードタイプを使用してクラスターを作成する場合は、`data-tiering-enabled` パラメータを渡す必要があります。
Linux、macOS、Unix の場合:  

```
aws elasticache create-cache-cluster \
--cache-cluster-id my-cluster \
--cache-node-type cache.r4.large \
--engine redis \
--num-cache-nodes 1 \
--cache-parameter-group default.redis6.x \
--snapshot-arns arn:aws:s3:::amzn-s3-demo-bucket/snapshot.rdb
```
Windows の場合:  

```
aws elasticache create-cache-cluster ^
--cache-cluster-id my-cluster ^
--cache-node-type cache.r4.large ^
--engine redis ^
--num-cache-nodes 1 ^
--cache-parameter-group default.redis6.x ^
--snapshot-arns arn:aws:s3:::amzn-s3-demo-bucket/snapshot.rdb
```

### Valkey または Redis OSS (クラスターモードが有効) クラスターの作成 (AWS CLI)
<a name="Clusters.Create.CLI.RedisCluster"></a>

Valkey または Redis OSS (クラスターモードが有効) クラスター (API/CLI: レプリケーショングループ) は、`create-cache-cluster` オペレーションを使用して作成できません。Valkey または Redis OSS (クラスターモードが有効) クラスター (API/CLI: レプリケーショングループ) を作成するには、「[Valkey または Redis OSS (クラスターモードが有効) レプリケーショングループを最初から作成する (AWS CLI)](Replication.CreatingReplGroup.NoExistingCluster.Cluster.md#Replication.CreatingReplGroup.NoExistingCluster.Cluster.CLI)」を参照してください。

詳細については、「 for ElastiCache リファレンストピックAWS CLI」を参照してください[https://docs.aws.amazon.com/cli/latest/reference/elasticache/create-replication-group.html](https://docs.aws.amazon.com/cli/latest/reference/elasticache/create-replication-group.html)。

## Valkey または Redis OSS 用のクラスターの作成 (ElastiCache API)
<a name="Clusters.Create.API.red-heading"></a>

ElastiCache API を使用してクラスターを作成するには、`CreateCacheCluster` アクションを使用します。

**重要**  
クラスターが使用可能になった直後から、そのクラスターがアクティブである間は (クラスターを使用していない場合でも)、時間に応じた料金が発生します。このクラスターに対する課金を中止するには、クラスターを削除する必要があります。「[ElastiCache でのクラスターの削除](Clusters.Delete.md)」を参照してください。

**Topics**
+ [Valkey または Redis OSS (クラスターモードが無効) クラスターの作成 (ElastiCache API)](#Clusters.Create.API.Redis)
+ [Valkey または Redis OSS (クラスターモードが有効) でのクラスターの作成 (ElastiCache API)](#Clusters.Create.API.RedisCluster)

### Valkey または Redis OSS (クラスターモードが無効) クラスターの作成 (ElastiCache API)
<a name="Clusters.Create.API.Redis"></a>

次のコードで、Valkey または Redis OSS (クラスターモードが無効) クラスターを作成します (ElastiCache API)。

改行は読みやすくするために追加しています。

```
https://elasticache.us-west-2.amazonaws.com/
    ?Action=CreateCacheCluster
    &CacheClusterId=my-cluster
    &CacheNodeType=cache.r4.large
    &CacheParameterGroup=default.redis3.2
    &Engine=redis
    &EngineVersion=3.2.4
    &NumCacheNodes=1
    &SignatureVersion=4       
    &SignatureMethod=HmacSHA256
    &SnapshotArns.member.1=arn%3Aaws%3As3%3A%3A%3AmyS3Bucket%2Fdump.rdb
    &Timestamp=20150508T220302Z
    &Version=2015-02-02
    &X-Amz-Algorithm=&AWS;4-HMAC-SHA256
    &X-Amz-Credential=<credential>
    &X-Amz-Date=20150508T220302Z
    &X-Amz-Expires=20150508T220302Z
    &X-Amz-SignedHeaders=Host
    &X-Amz-Signature=<signature>
```

### Valkey または Redis OSS (クラスターモードが有効) でのクラスターの作成 (ElastiCache API)
<a name="Clusters.Create.API.RedisCluster"></a>

Valkey または Redis OSS (クラスターモードが有効) クラスター (API/CLI: レプリケーショングループ) は、`CreateCacheCluster` オペレーションを使用して作成できません。Valkey または Redis OSS (クラスターモードが有効) クラスター (API/CLI: レプリケーショングループ) を作成するには、「[Valkey または Redis OSS (クラスターモードが有効) でレプリケーショングループを最初から作成する (ElastiCache API)](Replication.CreatingReplGroup.NoExistingCluster.Cluster.md#Replication.CreatingReplGroup.NoExistingCluster.Cluster.API)」を参照してください。

詳細については、ElastiCache API リファレンストピック「[https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_CreateReplicationGroup.html](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_CreateReplicationGroup.html)」を参照してください。

# Memcached 用のクラスターの作成
<a name="Clusters.Create-mc"></a>

次の例は、AWS マネジメントコンソールAWS CLIと ElastiCache API を使用してクラスターを作成する方法を示しています。

## Memcached クラスター (CLI) の作成 (コンソール)
<a name="Clusters.Create.CON.Memcached"></a>

Memcached エンジンを使用している場合、Amazon ElastiCache では、複数のノード間でのデータの水平分割がサポートされます。Memcached によって自動検出が有効になるため、各ノードのエンドポイントを手動で追跡する必要はなくなります。Memcached によって各ノードのエンドポイントは追跡されて、ノードの追加と削除に応じてエンドポイントのリストが更新されます。アプリケーションとクラスターのやり取りで必要になるのは、設定エンドポイントのみになります。

コンソール経由で Memcached クラスターを作成するには、「[Valkey (クラスターモードが無効) クラスターの作成 (コンソール)](Clusters.Create.md#Clusters.Create.CON.RedisCluster)」のステップを実行します。ステップ 5 に到達したら、**[Memcached キャッシュを作成]** を選択します。

クラスターのステータスが [*available*] になり次第、Amazon EC2 にアクセス権を付与して接続し、使用を開始できます。詳細については、同様の手順「[ステップ 3. クラスターへのアクセスを許可する](SubnetGroups.designing-cluster-pre.valkey.md#GettingStarted.AuthorizeAccess.valkey)」および「[ステップ 4. クラスターのノードに接続する](SubnetGroups.designing-cluster-pre.valkey.md#GettingStarted.ConnectToCacheNode.valkey)」を参照してください。

**重要**  
クラスターが使用可能になった直後から、クラスターがアクティブである間は (実際に使用していない場合でも)、時間に応じた料金が発生します。このクラスターに対する課金を中止するには、クラスターを削除する必要があります。「[ElastiCache でのクラスターの削除](Clusters.Delete.md)」を参照してください。

## クラスターの作成 (AWS CLI)
<a name="Clusters.Create.CLI.memcached-intro"></a>

を使用してクラスターを作成するにはAWS CLI、 `create-cache-cluster` コマンドを使用します。

**重要**  
クラスターが使用可能になった直後から、クラスターがアクティブである間は (実際に使用していない場合でも)、時間に応じた料金が発生します。このクラスターに対する課金を中止するには、クラスターを削除する必要があります。「[ElastiCache でのクラスターの削除](Clusters.Delete.md)」を参照してください。

### Memcached キャッシュクラスターの作成 (AWS CLI)
<a name="Clusters.Create.CLI.Memcached"></a>

次の CLI コードでは、3 つのノードを持つ Memcached クラスターを作成します。

Linux、macOS、Unix の場合:

```
aws elasticache create-cache-cluster \
--cache-cluster-id my-cluster \
--cache-node-type cache.r4.large \
--engine memcached \
--engine-version 1.4.24 \
--cache-parameter-group default.memcached1.4 \
--num-cache-nodes 3
```

Windows の場合:

```
aws elasticache create-cache-cluster ^
--cache-cluster-id my-cluster ^
--cache-node-type cache.r4.large ^
--engine memcached ^
--engine-version 1.4.24 ^
--cache-parameter-group default.memcached1.4 ^
--num-cache-nodes 3
```

## Memcached 用のクラスターの作成 (ElastiCache API)
<a name="Clusters.Create.API.mem-heading"></a>

ElastiCache API を使用してクラスターを作成するには、`CreateCacheCluster` アクションを使用します。

**重要**  
クラスターが使用可能になった直後から、そのクラスターがアクティブである間は (クラスターを使用していない場合でも)、時間に応じた料金が発生します。このクラスターに対する課金を中止するには、クラスターを削除する必要があります。「[ElastiCache でのクラスターの削除](Clusters.Delete.md)」を参照してください。

**Topics**
+ [Memcached クラスターの作成 (ElastiCache API)](#Clusters.Create.API.Memcached)

### Memcached クラスターの作成 (ElastiCache API)
<a name="Clusters.Create.API.Memcached"></a>

次のコードでは、3 つのノードを持つ Memcached クラスターを作成します (ElastiCache API)。

改行は読みやすくするために追加しています。

```
https://elasticache.us-west-2.amazonaws.com/
    ?Action=CreateCacheCluster
    &CacheClusterId=my-cluster
    &CacheNodeType=cache.r4.large
    &Engine=memcached
    &NumCacheNodes=3
    &SignatureVersion=4       
    &SignatureMethod=HmacSHA256
    &Timestamp=20150508T220302Z
    &Version=2015-02-02
    &X-Amz-Algorithm=&AWS;4-HMAC-SHA256
    &X-Amz-Credential=<credential>
    &X-Amz-Date=20150508T220302Z
    &X-Amz-Expires=20150508T220302Z
    &X-Amz-SignedHeaders=Host
    &X-Amz-Signature=<signature>
```

# ElastiCache クラスターの詳細の表示
<a name="Clusters.ViewDetails"></a>

ElastiCache コンソール、AWS CLI、または ElastiCache API を使用して、1 つ以上のクラスターについての詳細を表示できます。

## Memcached クラスターの詳細の表示 (コンソール)
<a name="Clusters.ViewDetails.CON.Memcached"></a>

ElastiCache コンソール、AWS CLI for ElastiCache、または ElastiCache API を使用して、Memcached クラスターの詳細を表示できます。

次の手順は、ElastiCache コンソールを使用して Memcached クラスターの詳細を表示する方法を示しています。

**Memcached クラスターの詳細を表示するには**

1. AWS マネジメントコンソール にサインインして、Amazon ElastiCache コンソール ([https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/)) を開きます。

1. 右上隅にある一覧から、目的の AWS リージョンを選択します。

1. ElastiCache エンジンダッシュボードで、**[Memcached]** を選択します。これにより、Memcached エンジンで実行されているすべてのクラスターが一覧表示されます。

1. クラスターの詳細を表示するには、クラスター名の左側にあるボックスを選択します。

1. ノード情報を表示するには、**[Nodes]** (ノード) タブを選択します。このタブには、ノードの状態とエンドポイントに関する情報が表示されます。

1. メトリクスを表示するには、**[Metrics]** (メトリクス) タブを選択します。このタブには、クラスター内のすべてのノードに関連するメトリクスが表示されます。詳細については、[CloudWatch メトリクスの使用状況のモニタリング](CacheMetrics.md)を参照してください。

1. **[Network and security]** (ネットワークとセキュリティ) タブを選択すると、クラスターのネットワーク接続とサブネットグループ設定、VPC セキュリティグループの詳細が表示されます。詳細については、「[サブネットおよびサブネットグループ](SubnetGroups.md)」を参照してください。

1. **[Maintenance]** (メンテナンス) タブを選択すると、クラスターのメンテナンス設定の詳細が表示されます。詳細については、「[ElastiCache クラスターメンテナンスの管理](maintenance-window.md)」を参照してください。

1. **[Tags]** (タグ) タブを選択すると、クラスターリソースに適用されているタグの詳細が表示されます。詳細については、「[ElastiCache リソースのタグ付け](Tagging-Resources.md)」を参照してください。

## Valkey または Redis OSS (クラスターモードが無効) の詳細の表示 (コンソール)
<a name="Clusters.ViewDetails.CON.Redis"></a>

ElastiCache コンソール、AWS CLI for ElastiCache、または ElastiCache API を使用して、Valkey または Redis OSS (クラスターモードが無効) クラスターの詳細を表示できます。

次の手順は、ElastiCache コンソールを使用して Valkey または Redis OSS (クラスターモードが無効) クラスターの詳細を表示する方法を示しています。

**Valkey または Redis OSS (クラスターモードが無効) クラスターの詳細を表示するには**

1. AWS マネジメントコンソールにサインインして、Amazon ElastiCache コンソール ([https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/)) を開きます。

1. ElastiCache エンジンダッシュボードで、**[Valkey]** または **[Redis OSS]** のいずれかを選択して、そのエンジンで実行されているすべてのクラスターのリストを表示します。

1. クラスターの詳細を表示するには、クラスター名の左側にあるボックスを選択します。クラスター化された Valkey またはクラスター化された Redis OSS ではなく、Valkey または Redis OSS エンジンを実行しているクラスターを必ず選択してください。これにより、クラスターのプライマリエンドポイントを含む、クラスターの詳細が表示されます。

1. ノード情報を表示するには

   1. クラスターの名前を選択します。

   1. **[Shards and nodes]** (シャードとノード) タブを選択します。これにより、クラスターから読み込むために使用する必要があるノードのエンドポイントを含む、各ノードの詳細が表示されます。

1. メトリクスを表示するには、**[Metrics]** (メトリクス) タブを選択します。このタブには、クラスター内のすべてのノードに関連するメトリクスが表示されます。詳細については、[CloudWatch メトリクスの使用状況のモニタリング](CacheMetrics.md)を参照してください。

1. ログを表示するには、**[Logs]** (ログ) タブを選択します。このタブには、クラスターがスローログとエンジンログのどちらを使用しているかが示され、関連する詳細が表示されます。詳細については、「[ログ配信](Log_Delivery.md)」を参照してください。

1. **[Network and security]** (ネットワークとセキュリティ) タブを選択すると、クラスターのネットワーク接続とサブネットグループ設定の詳細が表示されます。詳細については、「[サブネットおよびサブネットグループ](SubnetGroups.md)」を参照してください。

1. **[Maintenance]** (メンテナンス) タブを選択すると、クラスターのメンテナンス設定の詳細が表示されます。詳細については、「[ElastiCache クラスターメンテナンスの管理](maintenance-window.md)」を参照してください。

1. **[Service updates]** (サービスの更新) タブを選択すると、利用可能なサービスの更新の詳細と推奨適用期限が表示されます。詳細については、「[ElastiCache のサービスの更新](Self-Service-Updates.md)」を参照してください。

1. **[Tags]** (タグ) タブを選択すると、クラスターリソースに適用されているタグの詳細が表示されます。詳細については、「[ElastiCache リソースのタグ付け](Tagging-Resources.md)」を参照してください。

## Valkey または Redis OSS (クラスターモードが有効) クラスターの詳細の表示 (コンソール)
<a name="Clusters.ViewDetails.CON.RedisCluster"></a>

ElastiCache コンソール、AWS CLI for ElastiCache、または ElastiCache API を使用して、Valkey または Redis OSS (クラスターモードが有効) クラスターの詳細を表示できます。

次の手順は、ElastiCache コンソールを使用して Valkey または Redis OSS (クラスターモードが有効) クラスターの詳細を表示する方法を示しています。

**Valkey または Redis OSS (クラスターモードが有効) クラスターの詳細を表示するには**

1. AWS マネジメントコンソール にサインインして、Amazon ElastiCache コンソール ([https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/)) を開きます。

1. 右上隅にある一覧から、目的の AWS リージョンを選択します。

1. ElastiCache エンジンダッシュボードで、**[Valkey]** または **[Redis OSS]** を選択して、そのエンジンで実行されているすべてのクラスターのリストを表示します。

1. Valkey または Redis OSS (クラスターモードが有効) クラスターの詳細を表示するには、クラスター名の左側にあるボックスを選択します。Valkey またはクラスター化された Redis OSS エンジンを実行しているクラスターを必ず選択してください。

   クラスターの下の画面が展開され、クラスターに関する詳細 (クラスターの設定エンドポイントなど) が表示されます。

1. クラスター内のシャード数とシャードごとのノード数を一覧表示するには、**[Shards and nodes]** (シャードとノード) タブを選択します。

1. ノード固有の情報を表示するには

   1. シャードの ID を選択します。

     これにより、クラスターからデータを読み取るために必要な各ノードのエンドポイントなどの情報がノードごとに表示されます。

1. メトリクスを表示するには、**[Metrics]** (メトリクス) タブを選択します。このタブには、クラスター内のすべてのノードに関連するメトリクスが表示されます。詳細については、[CloudWatch メトリクスの使用状況のモニタリング](CacheMetrics.md)を参照してください。

1. ログを表示するには、**[Logs]** (ログ) タブを選択します。このタブには、クラスターがスローログとエンジンログのどちらを使用しているかが示され、関連する詳細が表示されます。詳細については、「[ログ配信](Log_Delivery.md)」を参照してください。

1. **[Network and security]** (ネットワークとセキュリティ) タブを選択すると、クラスターのネットワーク接続とサブネットグループ設定、使用されている場合は、クラスターで有効にされている暗号化の方法の詳細が表示されます。詳細については、「[サブネットおよびサブネットグループ](SubnetGroups.md)」および「[Amazon ElastiCache のデータセキュリティ](encryption.md)」を参照してください。

1. **[Maintenance]** (メンテナンス) タブを選択すると、クラスターのメンテナンス設定の詳細が表示されます。詳細については、「[ElastiCache クラスターメンテナンスの管理](maintenance-window.md)」を参照してください。

1. **[Service updates]** (サービスの更新) タブを選択すると、利用可能なサービスの更新の詳細と推奨適用期限が表示されます。詳細については、「[ElastiCache のサービスの更新](Self-Service-Updates.md)」を参照してください。

1. **[Tags]** (タグ) タブを選択すると、クラスターリソースに適用されているタグの詳細が表示されます。詳細については、「[ElastiCache リソースのタグ付け](Tagging-Resources.md)」を参照してください。

## ElastiCache クラスターの詳細の表示 (AWS CLI)
<a name="Clusters.ViewDetails.CLI"></a>

次のコードは、*my-cluster* の詳細をリストします。

```
aws elasticache describe-cache-clusters --cache-cluster-id my-cluster
```

`create-cache-cluster` コマンドを使用してクラスターが 1 つのキャッシュノードと 0 シャードで作成された場合は、*my-cluster* を自分のクラスター名に置き換えます。

```
{
    "CacheClusters": [
        {
            "CacheClusterStatus": "available",
            "SecurityGroups": [
                {
                    "Status": "active",
                    "SecurityGroupId": "sg-dbe93fa2"
                }
            ],
            "ClientDownloadLandingPage": "https://console.aws.amazon.com/elasticache/home#client-download:",
            "Engine": "redis",
            "PreferredMaintenanceWindow": "wed:12:00-wed:13:00",
            "CacheSubnetGroupName": "default",
            "SnapshotWindow": "08:30-09:30",
            "TransitEncryptionEnabled": false,
            "AtRestEncryptionEnabled": false,
            "CacheClusterId": "my-cluster1",
            "CacheClusterCreateTime": "2018-02-26T21:06:43.420Z",
            "PreferredAvailabilityZone": "us-west-2c",
            "AuthTokenEnabled": false,
            "PendingModifiedValues": {},
            "CacheNodeType": "cache.r4.large",
           "DataTiering": "disabled",
            "CacheParameterGroup": {
                "CacheNodeIdsToReboot": [],
                "ParameterApplyStatus": "in-sync",
                "CacheParameterGroupName": "default.redis3.2"
            },
            "SnapshotRetentionLimit": 0,
            "AutoMinorVersionUpgrade": true,
            "EngineVersion": "3.2.10",
            "CacheSecurityGroups": [],
            "NumCacheNodes": 1
        }
```

```
{
    "CacheClusters": [
        {
            "SecurityGroups": [
                {
                    "Status": "active",
                    "SecurityGroupId": "sg-dbe93fa2"
                }
            ],
            "ClientDownloadLandingPage": "https://console.aws.amazon.com/elasticache/home#client-download:",
            "AuthTokenEnabled": false,
            "CacheSubnetGroupName": "default",
            "SnapshotWindow": "12:30-13:30",
            "AutoMinorVersionUpgrade": true,
            "CacheClusterCreateTime": "2018-02-26T21:13:24.250Z",
            "CacheClusterStatus": "available",
            "AtRestEncryptionEnabled": false,
            "PreferredAvailabilityZone": "us-west-2a",
            "TransitEncryptionEnabled": false,
            "ReplicationGroupId": "my-cluster2",
            "Engine": "redis",
            "PreferredMaintenanceWindow": "sun:08:30-sun:09:30",
            "CacheClusterId": "my-cluster2-001",
            "PendingModifiedValues": {},
            "CacheNodeType": "cache.r4.large",
            "DataTiering": "disabled",
            "CacheParameterGroup": {
                "CacheNodeIdsToReboot": [],
                "ParameterApplyStatus": "in-sync",
                "CacheParameterGroupName": "default.redis6.x"
            },
            "SnapshotRetentionLimit": 0,
            "EngineVersion": "6.0",
            "CacheSecurityGroups": [],
            "NumCacheNodes": 1
        },
        {
            "SecurityGroups": [
                {
                    "Status": "active",
                    "SecurityGroupId": "sg-dbe93fa2"
                }
            ],
            "ClientDownloadLandingPage": "https://console.aws.amazon.com/elasticache/home#client-download:",
            "AuthTokenEnabled": false,
            "CacheSubnetGroupName": "default",
            "SnapshotWindow": "12:30-13:30",
            "AutoMinorVersionUpgrade": true,
            "CacheClusterCreateTime": "2018-02-26T21:13:24.250Z",
            "CacheClusterStatus": "available",
            "AtRestEncryptionEnabled": false,
            "PreferredAvailabilityZone": "us-west-2b",
            "TransitEncryptionEnabled": false,
            "ReplicationGroupId": "my-cluster2",
            "Engine": "redis",
            "PreferredMaintenanceWindow": "sun:08:30-sun:09:30",
            "CacheClusterId": "my-cluster2-002",
            "PendingModifiedValues": {},
            "CacheNodeType": "cache.r4.large",
            "DataTiering": "disabled",
            "CacheParameterGroup": {
                "CacheNodeIdsToReboot": [],
                "ParameterApplyStatus": "in-sync",
                "CacheParameterGroupName": "default.redis6.x"
            },
            "SnapshotRetentionLimit": 0,
            "EngineVersion": "6.0",
            "CacheSecurityGroups": [],
            "NumCacheNodes": 1
        },
        {
            "SecurityGroups": [
                {
                    "Status": "active",
                    "SecurityGroupId": "sg-dbe93fa2"
                }
            ],
            "ClientDownloadLandingPage": "https://console.aws.amazon.com/elasticache/home#client-download:",
            "AuthTokenEnabled": false,
            "CacheSubnetGroupName": "default",
            "SnapshotWindow": "12:30-13:30",
            "AutoMinorVersionUpgrade": true,
            "CacheClusterCreateTime": "2018-02-26T21:13:24.250Z",
            "CacheClusterStatus": "available",
            "AtRestEncryptionEnabled": false,
            "PreferredAvailabilityZone": "us-west-2c",
            "TransitEncryptionEnabled": false,
            "ReplicationGroupId": "my-cluster2",
            "Engine": "redis",
            "PreferredMaintenanceWindow": "sun:08:30-sun:09:30",
            "CacheClusterId": "my-cluster2-003",
            "PendingModifiedValues": {},
            "CacheNodeType": "cache.r4.large",
            "DataTiering": "disabled",
            "CacheParameterGroup": {
                "CacheNodeIdsToReboot": [],
                "ParameterApplyStatus": "in-sync",
                "CacheParameterGroupName": "default.redis3.2"
            },
            "SnapshotRetentionLimit": 0,
            "EngineVersion": "3.2.10",
            "CacheSecurityGroups": [],
            "NumCacheNodes": 1
        }
```

```
{
    "CacheClusters": [
        {
            "SecurityGroups": [
                {
                    "Status": "active",
                    "SecurityGroupId": "sg-dbe93fa2"
                }
            ],
            "ClientDownloadLandingPage": "https://console.aws.amazon.com/elasticache/home#client-download:",
            "AuthTokenEnabled": true,
            "CacheSubnetGroupName": "default",
            "SnapshotWindow": "12:30-13:30",
            "AutoMinorVersionUpgrade": true,
            "CacheClusterCreateTime": "2018-02-26T21:17:01.439Z",
            "CacheClusterStatus": "available",
            "AtRestEncryptionEnabled": true,
            "PreferredAvailabilityZone": "us-west-2a",
            "TransitEncryptionEnabled": true,
            "ReplicationGroupId": "my-cluster3",
            "Engine": "redis",
            "PreferredMaintenanceWindow": "thu:11:00-thu:12:00",
            "CacheClusterId": "my-cluster3-0001-001",
            "PendingModifiedValues": {},
            "CacheNodeType": "cache.r4.large",
            "DataTiering": "disabled",
            "CacheParameterGroup": {
                "CacheNodeIdsToReboot": [],
                "ParameterApplyStatus": "in-sync",
                "CacheParameterGroupName": "default.redis6.x.cluster.on"
            },
            "SnapshotRetentionLimit": 0,
            "EngineVersion": "6.0",
            "CacheSecurityGroups": [],
            "NumCacheNodes": 1
        },
        {
            "SecurityGroups": [
                {
                    "Status": "active",
                    "SecurityGroupId": "sg-dbe93fa2"
                }
            ],
            "ClientDownloadLandingPage": "https://console.aws.amazon.com/elasticache/home#client-download:",
            "AuthTokenEnabled": true,
            "CacheSubnetGroupName": "default",
            "SnapshotWindow": "12:30-13:30",
            "AutoMinorVersionUpgrade": true,
            "CacheClusterCreateTime": "2018-02-26T21:17:01.439Z",
            "CacheClusterStatus": "available",
            "AtRestEncryptionEnabled": true,
            "PreferredAvailabilityZone": "us-west-2b",
            "TransitEncryptionEnabled": true,
            "ReplicationGroupId": "my-cluster3",
            "Engine": "redis",
            "PreferredMaintenanceWindow": "thu:11:00-thu:12:00",
            "CacheClusterId": "my-cluster3-0001-002",
            "PendingModifiedValues": {},
            "CacheNodeType": "cache.r4.large",
             "DataTiering": "disabled",
            "CacheParameterGroup": {
                "CacheNodeIdsToReboot": [],
                "ParameterApplyStatus": "in-sync",
                "CacheParameterGroupName": "default.redis3.2.cluster.on"
            },
            "SnapshotRetentionLimit": 0,
            "EngineVersion": "3.2.6",
            "CacheSecurityGroups": [],
            "NumCacheNodes": 1
        },
        {
            "SecurityGroups": [
                {
                    "Status": "active",
                    "SecurityGroupId": "sg-dbe93fa2"
                }
            ],
            "ClientDownloadLandingPage": "https://console.aws.amazon.com/elasticache/home#client-download:",
            "AuthTokenEnabled": true,
            "CacheSubnetGroupName": "default",
            "SnapshotWindow": "12:30-13:30",
            "AutoMinorVersionUpgrade": true,
            "CacheClusterCreateTime": "2018-02-26T21:17:01.439Z",
            "CacheClusterStatus": "available",
            "AtRestEncryptionEnabled": true,
            "PreferredAvailabilityZone": "us-west-2c",
            "TransitEncryptionEnabled": true,
            "ReplicationGroupId": "my-cluster3",
            "Engine": "redis",
            "PreferredMaintenanceWindow": "thu:11:00-thu:12:00",
            "CacheClusterId": "my-cluster3-0001-003",
            "PendingModifiedValues": {},
            "CacheNodeType": "cache.r4.large",
             "DataTiering": "disabled",
            "CacheParameterGroup": {
                "CacheNodeIdsToReboot": [],
                "ParameterApplyStatus": "in-sync",
                "CacheParameterGroupName": "default.redis6.x.cluster.on"
            },
            "SnapshotRetentionLimit": 0,
            "EngineVersion": "6.0",
            "CacheSecurityGroups": [],
            "NumCacheNodes": 1
        },
        {
            "SecurityGroups": [
                {
                    "Status": "active",
                    "SecurityGroupId": "sg-dbe93fa2"
                }
            ],
            "ClientDownloadLandingPage": "https://console.aws.amazon.com/elasticache/home#client-download:",
            "AuthTokenEnabled": true,
            "CacheSubnetGroupName": "default",
            "SnapshotWindow": "12:30-13:30",
            "AutoMinorVersionUpgrade": true,
            "CacheClusterCreateTime": "2018-02-26T21:17:01.439Z",
            "CacheClusterStatus": "available",
            "AtRestEncryptionEnabled": true,
            "PreferredAvailabilityZone": "us-west-2b",
            "TransitEncryptionEnabled": true,
            "ReplicationGroupId": "my-cluster3",
            "Engine": "redis",
            "PreferredMaintenanceWindow": "thu:11:00-thu:12:00",
            "CacheClusterId": "my-cluster3-0002-001",
            "PendingModifiedValues": {},
            "CacheNodeType": "cache.r4.large",
             "DataTiering": "disabled",
            "CacheParameterGroup": {
                "CacheNodeIdsToReboot": [],
                "ParameterApplyStatus": "in-sync",
                "CacheParameterGroupName": "default.redis6.x.cluster.on"
            },
            "SnapshotRetentionLimit": 0,
            "EngineVersion": "6.0",
            "CacheSecurityGroups": [],
            "NumCacheNodes": 1
        },
        {
            "SecurityGroups": [
                {
                    "Status": "active",
                    "SecurityGroupId": "sg-dbe93fa2"
                }
            ],
            "ClientDownloadLandingPage": "https://console.aws.amazon.com/elasticache/home#client-download:",
            "AuthTokenEnabled": true,
            "CacheSubnetGroupName": "default",
            "SnapshotWindow": "12:30-13:30",
            "AutoMinorVersionUpgrade": true,
            "CacheClusterCreateTime": "2018-02-26T21:17:01.439Z",
            "CacheClusterStatus": "available",
            "AtRestEncryptionEnabled": true,
            "PreferredAvailabilityZone": "us-west-2c",
            "TransitEncryptionEnabled": true,
            "ReplicationGroupId": "my-cluster3",
            "Engine": "redis",
            "PreferredMaintenanceWindow": "thu:11:00-thu:12:00",
            "CacheClusterId": "my-cluster3-0002-002",
            "PendingModifiedValues": {},
            "CacheNodeType": "cache.r4.large",
             "DataTiering": "disabled",
            "CacheParameterGroup": {
                "CacheNodeIdsToReboot": [],
                "ParameterApplyStatus": "in-sync",
                "CacheParameterGroupName": "default.redis3.2.cluster.on"
            },
            "SnapshotRetentionLimit": 0,
            "EngineVersion": "3.2.6",
            "CacheSecurityGroups": [],
            "NumCacheNodes": 1
        },
        {
            "SecurityGroups": [
                {
                    "Status": "active",
                    "SecurityGroupId": "sg-dbe93fa2"
                }
            ],
            "ClientDownloadLandingPage": "https://console.aws.amazon.com/elasticache/home#client-download:",
            "AuthTokenEnabled": true,
            "CacheSubnetGroupName": "default",
            "SnapshotWindow": "12:30-13:30",
            "AutoMinorVersionUpgrade": true,
            "CacheClusterCreateTime": "2018-02-26T21:17:01.439Z",
            "CacheClusterStatus": "available",
            "AtRestEncryptionEnabled": true,
            "PreferredAvailabilityZone": "us-west-2a",
            "TransitEncryptionEnabled": true,
            "ReplicationGroupId": "my-cluster3",
            "Engine": "redis",
            "PreferredMaintenanceWindow": "thu:11:00-thu:12:00",
            "CacheClusterId": "my-cluster3-0002-003",
            "PendingModifiedValues": {},
            "CacheNodeType": "cache.r4.large",
             "DataTiering": "disabled",
            "CacheParameterGroup": {
                "CacheNodeIdsToReboot": [],
                "ParameterApplyStatus": "in-sync",
                "CacheParameterGroupName": "default.redis6.x.cluster.on"
            },
            "SnapshotRetentionLimit": 0,
            "EngineVersion": "6.0",
            "CacheSecurityGroups": [],
            "NumCacheNodes": 1
        }
    ]
}
```

AWS マネジメントコンソール を使用してクラスターを作成する場合(クラスターノードが 1 つ以上のシャードで有効または無効)、以下のコマンドを使用してクラスターの詳細を記述します (*my-cluster* をレプリケーショングループの名前 (自分のクラスターの名前)に置き換えます)。

```
aws elasticache describe-replication-groups --replication-group-id my-cluster 
```

詳細については、「AWS CLI for ElastiCache トピック [https://docs.aws.amazon.com/cli/latest/reference/elasticache/describe-cache-clusters.html](https://docs.aws.amazon.com/cli/latest/reference/elasticache/describe-cache-clusters.html)」を参照してください。

## ElastiCache クラスターの詳細の表示 (ElastiCache API)
<a name="Clusters.ViewDetails.API"></a>

ElastiCache API `DescribeCacheClusters` アクションを使用してクラスターの詳細を表示できます。`CacheClusterId` パラメータが含まれる場合は、指定したクラスターの詳細が返されます。`CacheClusterId` パラメータを省略すると、最大で `MaxRecords` (デフォルトは 100) のクラスターの詳細が返されます。`MaxRecords` の値は 20 未満、または 100 を超えることはできません。

次のコードは `my-cluster` の詳細を一覧します。

```
https://elasticache.us-west-2.amazonaws.com/
   ?Action=DescribeCacheClusters
   &CacheClusterId=my-cluster
   &Version=2015-02-02
   &SignatureVersion=4
   &SignatureMethod=HmacSHA256
   &Timestamp=20150202T192317Z
   &X-Amz-Credential=<credential>
```

次のコードは最大で 25 のクラスターの詳細を一覧します。

```
https://elasticache.us-west-2.amazonaws.com/
   ?Action=DescribeCacheClusters
   &MaxRecords=25
   &Version=2015-02-02
   &SignatureVersion=4
   &SignatureMethod=HmacSHA256
   &Timestamp=20150202T192317Z
   &X-Amz-Credential=<credential>
```

詳細については、「ElastiCache API リファレンストピック [https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_DescribeCacheClusters.html](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_DescribeCacheClusters.html)」を参照してください。

# ElastiCache クラスターの変更
<a name="Clusters.Modify"></a>

ElastiCache クラスターへのノードの追加または削除以外にも、セキュリティグループの追加、メンテナンスウィンドウやパラメータグループの変更など、他の変更を行う必要がある場合があります。

メンテナンスウィンドウは使用率の最も低い時間帯に設定することをお勧めします。このため、場合によっては変更が必要になります。

クラスターのパラメータを変更すると、変更はすぐにクラスターに適用されるか、クラスターが再起動されてから適用されます。これは、クラスターのパラメータグループ自体を変更するか、クラスターのパラメータグループ内のパラメータ値を変更するかに関係なく当てはまります。特定のパラメータの変更が適用されるタイミングを確認するには、「[Memcached 固有のパラメータ](ParameterGroups.Engine.md#ParameterGroups.Memcached)」および「[Valkey および Redis OSS パラメータ](ParameterGroups.Engine.md#ParameterGroups.Redis)」のテーブルで「**Details**」列の「**Changes Take Effect**」セクションを参照してください。クラスターのノードの再起動については、「[ノードの再起動](nodes.rebooting.md)」を参照してください。

## ElastiCache AWS マネジメントコンソール の使用
<a name="Clusters.Modify.CON"></a>

**クラスターを変更するには**

1. AWS マネジメントコンソール にサインインして、ElastiCache コンソール ([https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/)) を開きます。

1. 右上のリストから、変更するクラスターが存在する AWS リージョンを選択します。

1. ナビゲーションペインで、変更するクラスターで実行されているエンジンを選択します。

   選択したエンジンのクラスターが一覧表示されます。

1. クラスターのリストで、変更するクラスターの名前を選択します。

1. **アクション** を選択してから、**変更** を選択します。

   [**Modify Cluster**] ウィンドウが表示されます。

1. [**クラスターの変更**] ウィンドウで、必要な変更を行います。オプションには以下が含まれます。
   + 説明
   + クラスターモード - クラスターモードを **[無効]** から **[有効]** に変更するには、まずクラスターモードを **[互換]** に設定する必要があります。

     互換モードは、Valkey または Redis OSS クライアントがクラスターモードの有効化およびクラスターモードの無効化の両方を使用して接続できるようにします。すべての Valkey または Redis OSS クライアントをクラスターモード有効で使用するように移行した後、クラスターモードの設定を完了し、クラスターモードを **[有効]** に設定できます。
   + エンジンバージョンの互換性
**重要**  
最新のエンジンバージョンにアップグレードできます。例えば、5.0.6 から 6.0 へのメジャーエンジンのバージョンをアップグレードする場合は、新しいエンジンバージョンと互換性があるパラメータグループファミリーを選択する必要があります。その設定方法の詳細については、「[ElastiCache のバージョン管理](VersionManagement.md)」を参照してください。ただし、既存のクラスターを削除して作成し直さない限り、以前のバージョンのエンジンにはダウングレードできません。
   + VPC セキュリティグループ
   + パラメータグループ
   + ノードの種類
**注記**  
クラスターが r6gd ファミリーのノードタイプを使用している場合は、そのファミリー内からのみ別のノードサイズを選択できます。r6gd ファミリーからノードタイプを選択すると、データ階層化が自動的に有効になります。詳細については、[データ階層化](data-tiering.md)を参照してください。
   + マルチ AZ
   + 自動フェイルオーバー (クラスターモードが無効のみ)
   + 自動バックアップの有効化
   + バックアップノード ID
   + バックアップの保持期間
   + バックアップウィンドウ
   + SNS 通知のトピック
   + Memcached エンジンバージョンの互換性
   + ネットワークの種類
**注記**  
IPv4 から IPv6 に切り替える場合は、IPv6 と互換性のあるサブネットグループを選択または作成する必要があります。詳細については、「[ElastiCache でネットワークタイプを選択する](network-type.md)」を参照してください。
   + VPC セキュリティグループ
   + パラメータグループ
   + メンテナンスウィンドウ
   + SNS 通知のトピック

   **[すぐに適用]** ボックスはエンジンバージョンとノードタイプの変更にのみ適用されます。変更をすぐに適用するには、[**Apply Immediately (すぐに適用)**] チェックボックスをオンにします。このチェックボックスがオフになっている場合、エンジンバージョンの変更は次回のメンテナンスウィンドウ中に適用されます。その他の変更 (メンテナンス期間の変更など) はすぐに適用されます。

**Redis のログ配信を有効/無効にするには**

1. クラスターのリストから、変更するクラスターを選択します。横にあるチェックボックスではなく、[**クラスター名**] を選択します。

1. **[クラスターの詳細]** ページで、**[ログ]** タブを選択します。

1. スローログを有効/無効にするには、**[有効化]** または **[無効化]** を選択します。

   有効化を選択した場合:

   1. **[Log format]** (ログの形式) の下で、**[JSON]** または **[Text]** (テキスト) を選択します。

   1. **[Log destination type]** (ログ送信先タイプ) の下で、**[CloudWatch Logs]** または **[Kinesis Firehose]** を選択します。

   1. **[ログの送信先]** の下で、**[新規作成]** を選択し、CloudWatchLogs ロググループ名または Kinesis Data Firehose ストリーム名を入力します。**[既存の選択]** を選択してから、CloudWatchLogs ロググループ名または Kinesis Data Firehose ストリーム名を選択することもできます。

   1. **[有効化]** を選択します。

**Redis の設定を変更するには:**

1. **[Modify]** (変更) を選択します。

1. **[Log format]** (ログの形式) の下で、**[JSON]** または **[Text]** (テキスト) を選択します。

1. **[送信先のタイプ]** の下で、**[CloudWatch Logs]** または **[Kinesis Firehose]** を選択します。

1. **[Log destination]** (ログの送信先) の下で、**[Create new]** (新規作成) を選択するか、CloudWatchLogs ロググループ名または Kinesis Data Firehose ストリーム名を入力します。または、**[Select existing]** (既存の選択) を選択してから、CloudWatchLogs ロググループ名または Kinesis Data Firehose ストリーム名を選択します。

## ElastiCache で AWS CLI を使用する
<a name="Clusters.Modify.CLI"></a>

AWS CLI `modify-cache-cluster` オペレーションを使用して既存のクラスターを変更できます。クラスターの設定値を変更するには、クラスターの ID、変更するパラメータ、パラメータの新しい値を指定します。次の例では、`my-cluster` という名前のクラスターのメンテナンスウィンドウを変更し、変更内容を直ちに適用します。

**重要**  
新しい Memcached エンジンバージョンにアップグレードできます。その設定方法の詳細については、「[ElastiCache のバージョン管理](VersionManagement.md)」を参照してください。ただし、既存のクラスターを削除して作成し直さない限り、以前のバージョンのエンジンにはダウングレードできません。

**重要**  
新しい Valkey または Redis OSS エンジンバージョンにアップグレードできます。例えば Redis OSS 5.0.6 から Redis OSS 6.0 など、メジャーエンジンバージョンをアップグレードする場合は、新しいエンジンバージョンと互換性があるパラメータグループファミリーを選択する必要があります。その設定方法の詳細については、「[ElastiCache のバージョン管理](VersionManagement.md)」を参照してください。ただし、既存のクラスターを削除して作成し直さない限り、以前のバージョンのエンジンにはダウングレードできません。

Linux、macOS、Unix の場合:

```
aws elasticache modify-cache-cluster \
    --cache-cluster-id my-cluster \
    --preferred-maintenance-window sun:23:00-mon:02:00
```

Windows の場合:

```
aws elasticache modify-cache-cluster ^
    --cache-cluster-id my-cluster ^
    --preferred-maintenance-window sun:23:00-mon:02:00
```

`--apply-immediately` パラメータは、ノードタイプとエンジンバージョンの変更、 クラスターのノード数の変更にのみ適用されます。これらの変更のいずれもすぐに適用する場合は、`--apply-immediately` パラメータを使用します。これらの変更を次のメンテナンス期間に延期する場合は、`--no-apply-immediately` パラメータを使用します。その他の変更 (メンテナンス期間の変更など) はすぐに適用されます。

詳細については、「AWS CLI for ElastiCache トピック [https://docs.aws.amazon.com/cli/latest/reference/elasticache/modify-cache-cluster.html](https://docs.aws.amazon.com/cli/latest/reference/elasticache/modify-cache-cluster.html) の」を参照してください。

## ElastiCache API の使用
<a name="Clusters.Modify.API"></a>

ElastiCache API `ModifyCacheCluster` オペレーションを使用して既存のクラスターを変更できます。クラスターの設定値を変更するには、クラスターの ID、変更するパラメータ、パラメータの新しい値を指定します。次の例では、`my-cluster` という名前のクラスターのメンテナンスウィンドウを変更し、変更内容を直ちに適用します。

**重要**  
新しい Memcached エンジンバージョンにアップグレードできます。その設定方法の詳細については、「[ElastiCache のバージョン管理](VersionManagement.md)」を参照してください。ただし、既存のクラスターを削除して作成し直さない限り、以前のバージョンのエンジンにはダウングレードできません。

**重要**  
新しい Valkey または Redis OSS エンジンバージョンにアップグレードできます。例えば Redis OSS 5.0.6 から Redis OSS 6.0 など、メジャーエンジンバージョンをアップグレードする場合は、新しいエンジンバージョンと互換性があるパラメータグループファミリーを選択する必要があります。その設定方法の詳細については、「[ElastiCache のバージョン管理](VersionManagement.md)」を参照してください。ただし、既存のクラスターを削除して作成し直さない限り、以前のバージョンのエンジンにはダウングレードできません。

改行は読みやすくするために追加しています。

```
https://elasticache.us-west-2.amazonaws.com/
    ?Action=ModifyCacheCluster
    &CacheClusterId=my-cluster
    &PreferredMaintenanceWindow=sun:23:00-mon:02:00
    &SignatureVersion=4
    &SignatureMethod=HmacSHA256
    &Timestamp=20150901T220302Z
    &X-Amz-Algorithm=&AWS;4-HMAC-SHA256
    &X-Amz-Date=20150202T220302Z
    &X-Amz-SignedHeaders=Host
    &X-Amz-Expires=20150901T220302Z
    &X-Amz-Credential=<credential>
    &X-Amz-Signature=<signature>
```

`ApplyImmediately` パラメータは、ノードタイプとエンジンバージョンの変更、 クラスターのノード数の変更にのみ適用されます。これらの変更のいずれもすぐに適用する場合は、`ApplyImmediately` パラメータを `true` に設定します。これらの変更を次のメンテナンス期間に延期する場合は、`ApplyImmediately` パラメータを `false` に設定します。その他の変更 (メンテナンス期間の変更など) はすぐに適用されます。

詳細については、「ElastiCache API リファレンストピック [https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_ModifyCacheCluster.html](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_ModifyCacheCluster.html)」を参照してください。

# ノードを ElastiCache クラスターに追加する
<a name="Clusters.AddNode"></a>

Memcached クラスターにノードを追加すると、クラスターのパーティションの数が増えます。クラスターのパーティションの数を変更するときは、正しいノードにマップされるように、一部のキースペースを再マッピングする必要があります。キースペースを再マッピングすると、クラスターでのキャッシュミスの数が一時的に増えます。詳細については、「[効率的な負荷分散のための ElastiCache クライアントの設定 (Memcached)](BestPractices.LoadBalancing.md)」を参照してください。

Valkey または Redis OSS (クラスターモードが有効) クラスターを再設定するには、「[Valkey または Redis OSS (クラスターモードが有効) クラスターのスケーリング](scaling-redis-cluster-mode-enabled.md)」を参照してください。

ElastiCache マネジメントコンソール、、AWS CLIまたは ElastiCache API を使用して、クラスターにノードを追加できます。

## ElastiCache AWS マネジメントコンソールの使用
<a name="Clusters.AddNode.CON"></a>

単一ノードの Valkey または Redis OSS (クラスターモードが無効) クラスター (レプリケーションが有効でないクラスター) にノードを追加する場合は、2 ステップのプロセスを踏みます。最初にレプリケーションを追加し、次にレプリカノードを追加します。

**トピック**
+ [シャードがない Valkey または Redis OSS クラスターにレプリケーションを追加するには](#AddReplication.CON)
+ [ノードを ElastiCache クラスターに追加するには (コンソール)](#AddNode.CON)

次の手順では、レプリケーションが有効でない単一ノードの Valkey または Redis OSS にレプリケーションを追加します。レプリケーションを追加すると、既存のノードはレプリケーションが有効なクラスターのプライマリノードになります。レプリケーションの追加後に、最大 5 個のレプリカノードをクラスターに追加できます。<a name="AddReplication.CON"></a>

**シャードがない Valkey または Redis OSS クラスターにレプリケーションを追加するには**

1. にサインインAWS マネジメントコンソールし、[https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/) で ElastiCache コンソールを開きます。

1. ナビゲーションペインで **[Valkey クラスター]** または **[Redis OSS クラスター]** を選択します。

   そのエンジンを実行しているクラスターが一覧表示されます。

1. ノードを追加するクラスターの名前 (クラスター名の左にあるボックスではなく) を選択します。

   レプリケーションが有効でない Redis OSS クラスターは以下に該当します。
   + クラスター化された Redis OSS ではなく、Redis OSS を実行しています。
   + シャードがありません。

     クラスターにシャードがある場合は、レプリケーションがすでに有効になっており、[ノードを ElastiCache クラスターに追加するには (コンソール)](#AddNode.CON) を続行できます。

1. [**Add replication**] を選択します。

1. [**レプリケーションの追加**] で、このレプリケーションが有効なクラスターの説明を入力します。

1. **[Add]** (追加) を選択します。

   クラスターのステータスが [*available*] になり次第、次の手順に進んでクラスターにレプリカを追加できます。<a name="AddNode.CON"></a>

**ノードを ElastiCache クラスターに追加するには (コンソール)**

次の手順を使用して、クラスターにノードを追加できます。

1. にサインインAWS マネジメントコンソールし、[https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/) で ElastiCache コンソールを開きます。

1. ナビゲーションペインで、ノードを追加する先のクラスターで実行されているエンジンを選択します。

   選択したエンジンを実行しているクラスターが一覧表示されます。

1. クラスターのリストから、ノードを追加する先のクラスターの名前を選択します。

   クラスターが Valkey または Redis OSS (クラスターモードが有効) クラスターの場合は、「[Valkey または Redis OSS (クラスターモードが有効) クラスターのスケーリング](scaling-redis-cluster-mode-enabled.md)」を参照してください。

   クラスターが、シャードがない Valkey または Redis OSS (クラスターモードが無効) クラスターの場合は、最初に「[シャードがない Valkey または Redis OSS クラスターにレプリケーションを追加するには](#AddReplication.CON)」のステップを完了してください。

1. [**Add node**] (ノードの追加) を選択します。

1. [**ノードの追加**] ダイアログボックスで、要求された情報を入力します。

1. このノードを直ちに追加する場合は [**Apply Immediately (すぐに適用) - はい**] ボタンを選択します。クラスターの次のメンテナンス期間にこのノードを追加する場合は [**いいえ**] を選択します。  
**保留中のリクエストに対する新しい追加および削除リクエストの影響**    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/AmazonElastiCache/latest/dg/Clusters.AddNode.html)

   保留中のオペレーションを確認するには、[**説明**] タブを選択し、表示されている保留中の作成または削除の数を確認します。保留中の作成と保留中の削除の両方を持つことはできません。

1. [**Add**] ボタンを選択します。

    しばらくすると、新しいノードが一覧表示され、ステータス [**creating**] になります。表示されない場合は、ブラウザのページを更新します。ノードのステータスが [*available*] (利用可能) に変わったら、新しいノードを使用できます。

## ElastiCache AWS CLIでの の使用
<a name="Clusters.AddNode.CLI"></a>

を使用してクラスターにノードを追加するにはAWS CLI、以下のパラメータ`modify-cache-cluster`を指定してAWS CLIオペレーションを使用します。
+ `--cache-cluster-id` ノードを追加する先のクラスターの ID。
+ `--num-cache-nodes` `--num-cache-nodes` パラメータは、変更の適用後に、このクラスターに必要となるノードの数を指定します。このクラスターにノードを追加しても、`--num-cache-nodes` はこのクラスター内の現在ノードの数よりも大きくする必要があります。この値が現在のノード数より少ない場合、ElastiCache はパラメータ `cache-node-ids-to-remove` と、クラスターから削除するノードの一覧を要求します。詳細については、「[ElastiCache AWS CLIでの の使用](Clusters.DeleteNode.md#Clusters.DeleteNode.CLI)」を参照してください。
+ `--apply-immediately` または `--no-apply-immediately` は、次のメンテナンス時にこれらのノードを追加するかどうかを指定します。

Linux、macOS、Unix の場合:

```
aws elasticache modify-cache-cluster \
    --cache-cluster-id my-cluster \
    --num-cache-nodes 5 \
    --apply-immediately
```

Windows の場合:

```
aws elasticache modify-cache-cluster ^
    --cache-cluster-id my-cluster ^
    --num-cache-nodes 5 ^
    --apply-immediately
```

このオペレーションでは、次のような出力が生成されます (JSON 形式)。

```
{
    "CacheCluster": {
        "Engine": "memcached", 
        "CacheParameterGroup": {
            "CacheNodeIdsToReboot": [], 
            "CacheParameterGroupName": "default.memcached1.4", 
            "ParameterApplyStatus": "in-sync"
        }, 
        "CacheClusterId": "my-cluster", 
        "PreferredAvailabilityZone": "us-west-2b", 
        "ConfigurationEndpoint": {
            "Port": 11211, 
            "Address": "rlh-mem000.7alc7bf-example.cfg.usw2.cache.amazonaws.com"
        }, 
        "CacheSecurityGroups": [], 
        "CacheClusterCreateTime": "2016-09-21T16:28:28.973Z", 
        "AutoMinorVersionUpgrade": true, 
        "CacheClusterStatus": "modifying", 
        "NumCacheNodes": 2, 
        "ClientDownloadLandingPage": "https://console.aws.amazon.com/elasticache/home#client-download:", 
        "SecurityGroups": [
            {
                "Status": "active", 
                "SecurityGroupId": "sg-dbe93fa2"
            }
        ], 
        "CacheSubnetGroupName": "default", 
        "EngineVersion": "1.4.24", 
        "PendingModifiedValues": {
            "NumCacheNodes": 5
        }, 
        "PreferredMaintenanceWindow": "sat:09:00-sat:10:00", 
        "CacheNodeType": "cache.m3.medium",
         "DataTiering": "disabled",
    }
}
```

詳細については、AWS CLI「」トピックを参照してください[https://docs.aws.amazon.com/cli/latest/reference/elasticache/modify-cache-cluster.html](https://docs.aws.amazon.com/cli/latest/reference/elasticache/modify-cache-cluster.html)。

## ElastiCache AWS CLIでの の使用
<a name="Clusters.AddNode.CLI"></a>

レプリケーションが有効でない既存の Valkey または Redis OSS (クラスターモードが無効) クラスターにノードを追加する場合は、最初にレプリケーショングループを作成して既存のクラスターをプライマリとして指定する必要があります。詳細については、「[使用可能な Valkey または Redis OSS のクラスターを使用したレプリケーショングループの作成 (AWS CLI)](Replication.CreatingReplGroup.ExistingCluster.md#Replication.CreatingReplGroup.ExistingCluster.CLI)」を参照してください。レプリケーショングループが [*available*] になった後で、次のプロセスを続行できます。

を使用してクラスターにノードを追加するにはAWS CLI、以下のパラメータ`increase-replica-count`を指定してAWS CLIオペレーションを使用します。
+ `--replication-group-id` ノードを追加する先のレプリケーショングループの ID。
+ `--new-replica-count` は、変更の適用後に、このレプリケーショングループに必要となるノードの数を指定します。このクラスターにノードを追加しても、`--new-replica-count` はこのクラスター内の現在ノードの数よりも大きくする必要があります。
+ `--apply-immediately` または `--no-apply-immediately` は、次のメンテナンス時にこれらのノードを追加するかどうかを指定します。

Linux、macOS、Unix の場合:

```
aws elasticache increase-replica-count \
    --replication-group-id my-replication-group \
    --new-replica-count 4 \
    --apply-immediately
```

Windows の場合:

```
aws elasticache increase-replica-count ^
    --replication-group-id my-replication-group ^
    --new-replica-count 4 ^
    --apply-immediately
```

このオペレーションでは、次のような出力が生成されます (JSON 形式)。

```
{
    "ReplicationGroup": {
        "ReplicationGroupId": "node-test",
        "Description": "node-test",       
        "Status": "modifying",
        "PendingModifiedValues": {},
        "MemberClusters": [
            "node-test-001",
            "node-test-002",
            "node-test-003",
            "node-test-004",
            "node-test-005"
        ],
        "NodeGroups": [
            {
                "NodeGroupId": "0001",
                "Status": "modifying",
                "PrimaryEndpoint": {
                    "Address": "node-test.zzzzzz.ng.0001.usw2.cache.amazonaws.com",
                    "Port": 6379
                },
                "ReaderEndpoint": {
                    "Address": "node-test.zzzzzz.ng.0001.usw2.cache.amazonaws.com",
                    "Port": 6379
                },
                "NodeGroupMembers": [
                    {
                        "CacheClusterId": "node-test-001",
                        "CacheNodeId": "0001",
                        "ReadEndpoint": {
                            "Address": "node-test-001.zzzzzz.0001.usw2.cache.amazonaws.com",
                            "Port": 6379
                        },
                        "PreferredAvailabilityZone": "us-west-2a",
                        "CurrentRole": "primary"
                    },
                    {
                        "CacheClusterId": "node-test-002",
                        "CacheNodeId": "0001",
                        "ReadEndpoint": {
                            "Address": "node-test-002.zzzzzz.0001.usw2.cache.amazonaws.com",
                            "Port": 6379
                        },
                        "PreferredAvailabilityZone": "us-west-2c",
                        "CurrentRole": "replica"
                    },
                    {
                        "CacheClusterId": "node-test-003",
                        "CacheNodeId": "0001",
                        "ReadEndpoint": {
                            "Address": "node-test-003.zzzzzz.0001.usw2.cache.amazonaws.com",
                            "Port": 6379
                        },
                        "PreferredAvailabilityZone": "us-west-2b",
                        "CurrentRole": "replica"
                    }
                ]
            }
        ],
        "SnapshottingClusterId": "node-test-002",
        "AutomaticFailover": "enabled",
        "MultiAZ": "enabled",
        "SnapshotRetentionLimit": 1,
        "SnapshotWindow": "07:30-08:30",
        "ClusterEnabled": false,
        "CacheNodeType": "cache.r5.large",
         "DataTiering": "disabled",
        "TransitEncryptionEnabled": false,
        "AtRestEncryptionEnabled": false,
        "ARN": "arn:aws:elasticache:us-west-2:123456789012:replicationgroup:node-test"
    }
}
```

詳細については、AWS CLI「」トピックを参照してください[https://docs.aws.amazon.com/cli/latest/reference/elasticache/increase-replica-count.html](https://docs.aws.amazon.com/cli/latest/reference/elasticache/increase-replica-count.html)。

## ElastiCache API の使用
<a name="Clusters.AddNode.API"></a>

レプリケーションが有効でない既存の Valkey または Redis OSS (クラスターモードが無効) クラスターにノードを追加する場合は、最初にレプリケーショングループを作成して既存のクラスターをプライマリとして指定する必要があります。詳細については、「[スタンドアロンの Valkey または Redis OSS (クラスターモードが無効) クラスターにレプリカを追加する (ElastiCache API)](Replication.CreatingReplGroup.ExistingCluster.md#Replication.CreatingReplGroup.ExistingCluster.API)」を参照してください。レプリケーショングループが [*available*] になった後で、次のプロセスを続行できます。

**ノードをクラスターに追加するには (ElastiCache API)**
+ 以下のパラメーターを指定して `IncreaseReplicaCount` API オペレーションを呼び出します。
  + `ReplicationGroupId` ノードを追加する先のクラスターの ID。
  + `NewReplicaCount` `NewReplicaCount` パラメータは、変更の適用後に、このクラスターに必要となるノードの数を指定します。このクラスターにノードを追加しても、`NewReplicaCount` はこのクラスター内の現在ノードの数よりも大きくする必要があります。この値が現在のノードの数より少ない場合、そのノードの数がある `DecreaseReplicaCount` API を使用してクラスターから削除します。
  + `ApplyImmediately` は、次のメンテナンス時にこれらのノードを追加するかどうかを指定します。
  + `Region` ノードを追加するクラスターのAWSリージョンを指定します。

  次の例は、クラスターにノードを追加する呼び出しを示しています。  
**Example**  

  ```
  https://elasticache.us-west-2.amazonaws.com/
      ?Action=IncreaseReplicaCount
      &ApplyImmediately=true
      &NumCacheNodes=4
      &ReplicationGroupId=my-replication-group
      &Region=us-east-2
      &Version=2014-12-01
      &SignatureVersion=4
      &SignatureMethod=HmacSHA256
      &Timestamp=20141201T220302Z
      &X-Amz-Algorithm=&AWS;4-HMAC-SHA256
      &X-Amz-Date=20141201T220302Z
      &X-Amz-SignedHeaders=Host
      &X-Amz-Expires=20141201T220302Z
      &X-Amz-Credential=<credential>
      &X-Amz-Signature=<signature>
  ```

詳細については、「ElastiCache API トピック [https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_IncreaseReplicaCount.html](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_IncreaseReplicaCount.html)」を参照してください。

## ElastiCache API の使用
<a name="Clusters.AddNode.API"></a>

**ノードをクラスターに追加するには (ElastiCache API)**
+ 以下のパラメーターを指定して `ModifyCacheCluster` API オペレーションを呼び出します。
  + `CacheClusterId` ノードを追加する先のクラスターの ID。
  + `NumCacheNodes` `NumCachNodes` パラメータは、変更の適用後に、このクラスターに必要となるノードの数を指定します。このクラスターにノードを追加しても、`NumCacheNodes` はこのクラスター内の現在ノードの数よりも大きくする必要があります。この値が現在のノードの数より少ない場合、ElastiCache は `CacheNodeIdsToRemove` パラメータとノードのリストがノードをクラスターから削除することを想定します (「[Memcached で ElastiCache API を使用する](Clusters.DeleteNode.md#Clusters.DeleteNode.API)」を参照)。
  + `ApplyImmediately` は、次のメンテナンス時にこれらのノードを追加するかどうかを指定します。
  + `Region` ノードを追加するクラスターのAWSリージョンを指定します。

  次の例は、クラスターにノードを追加する呼び出しを示しています。  
**Example**  

  ```
  https://elasticache.us-west-2.amazonaws.com/
      ?Action=ModifyCacheCluster
      &ApplyImmediately=true
      &NumCacheNodes=5
  	&CacheClusterId=my-cluster
  	&Region=us-east-2
      &Version=2014-12-01
      &SignatureVersion=4
      &SignatureMethod=HmacSHA256
      &Timestamp=20141201T220302Z
      &X-Amz-Algorithm=&AWS;4-HMAC-SHA256
      &X-Amz-Date=20141201T220302Z
      &X-Amz-SignedHeaders=Host
      &X-Amz-Expires=20141201T220302Z
      &X-Amz-Credential=<credential>
      &X-Amz-Signature=<signature>
  ```

詳細については、「ElastiCache API トピック [https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_ModifyCacheCluster.html](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_ModifyCacheCluster.html)」を参照してください。

# ElastiCache クラスターからノードを削除する
<a name="Clusters.DeleteNode"></a>

Valkey、Memcached、または Redis OSS クラスターからノードを削除するにはAWS マネジメントコンソール、、AWS CLI、または ElastiCache API を使用します。

**注記**  
Memcached クラスターのノード数を変更するたびに、正しいノードにマップできるようにキースペースの一部を再マッピングする必要があります。Memcached クラスターの負荷分散の詳細については、「[効率的な負荷分散のための ElastiCache クライアントの設定 (Memcached)](BestPractices.LoadBalancing.md)」を参照してください。

## ElastiCache AWS マネジメントコンソールの使用
<a name="Clusters.DeleteNode.CON"></a>

**クラスターからノードを削除するには (コンソール)**

1. にサインインAWS マネジメントコンソールし、[https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/) で ElastiCache コンソールを開きます。

1. 右上隅のリストから、ノードを削除するクラスターのAWSリージョンを選択します。

1. ナビゲーションペインで、ノードを削除するクラスターで実行されているエンジンを選択します。

   選択したエンジンを実行しているクラスターが一覧表示されます。

1. クラスターの一覧から、ノードを削除するクラスターの名前を選択します。

   クラスターのノードが一覧表示されます。

1. 削除するノードのノード ID の左側にあるボックスをオンにします。ElastiCache コンソール で同時に削除できるノードは 1 つのみです。複数のノードを選択すると、[**ノードの削除**] ボタンは使用できません。

   [*ノードの削除*] ページが表示されます。

1. ノードを削除するには、[**ノードの削除**] ページに入力し、[**ノードの削除**] を選択します。ノードを保持するには、[**キャンセル**] を選択します。
**重要**  
Valkey または Redis OSS では、ノードを削除すると、クラスターはマルチ AZ に準拠しなくなるため、最初に **[マルチ AZ]** チェックボックスをオフにしてから、ノードを削除してください。[**マルチ AZ**] チェックボックスをオフにすると、[**自動フェイルオーバー**] を有効にすることができます。


**保留中のリクエストに対する新しい追加および削除リクエストの影響**  

| シナリオ | 保留中のオペレーション | 新しいリクエスト | 結果 | 
| --- | --- | --- | --- | 
|  シナリオ 1 |  Delete | Delete |  新しい削除リクエスト (保留中または即時) は、保留中の削除リクエストを置き換えます。 例えば、ノード 0001、0003、0007 が削除保留中で、ノード 0002 と 0004 を削除する新しいリクエストが発行された場合、ノード 0002 と 0004 のみが削除されます。ノード 0001、0003、0007 は削除されません。 | 
|  シナリオ 2 |  Delete |  作成 |  新しい作成リクエスト (保留中または直ちに) は、保留中の削除リクエストを置き換えます。 例えば、ノード 0001、0003、0007 の削除が保留中で、ノードを作成する新しいリクエストが発行された場合、新しいノードが作成され、ノード 0001、0003、0007 は削除されません。 | 
|  シナリオ 3 |  作成 |  Delete |  新しい削除リクエスト (保留中または即時) は、保留中の作成リクエストを置き換えます。 例えば、2 つのノードを作成する保留中の要求があり、ノード 0003 を削除する新しいリクエストが発行された場合、新しいノードは作成されず、ノード 0003 は削除されます。 | 
|  シナリオ 4 |  作成 |  作成 |  新しい作成リクエストが保留中の作成リクエストに追加されます。 例えば、2 つのノードを作成する保留中のリクエストがあり、3 つのノードを作成する新しいリクエストが発行された場合、新しいリクエストは保留中のリクエストに追加され、5 つのノードが作成されます。 新しい作成リクエストが [**直ちに適用 - はい**] に設定されると、すべての作成リクエストが直ちに実行されます。新しい作成リクエストが [**直ちに適用 - いいえ**] に設定されると、すべての作成リクエストは保留中になります。 | 

保留中のオペレーションを確認するには、[**説明**] タブを選択し、表示されている保留中の作成または削除の数を確認します。保留中の作成と保留中の削除の両方を持つことはできません。

## ElastiCache AWS CLIでの の使用
<a name="Clusters.DeleteNode.CLI"></a>

1. 削除するノードの ID を確認します。詳細については、「[ElastiCache クラスターの詳細の表示](Clusters.ViewDetails.md)」を参照してください。

1. 次の例のように、削除するノードの一覧を使用して `decrease-replica-count` CLI オペレーションを呼び出します。

   コマンドラインインターフェイスを使用してクラスターからノードを削除するには、以下のパラメーターを指定して `decrease-replica-count` コマンドを使用します。
   + `--replication-group-id` ノードを削除するレプリケーショングループの ID。
   + `--new-replica-count` `--new-replica-count` パラメータは、変更の適用後に、このクラスターに必要となるノードの数を指定します。
   + `--replicas-to-remove` このクラスターから削除するノード ID のリスト。
   + `--apply-immediately` または `--no-apply-immediately` は、次のメンテナンス時にこれらのノードを削除するかどうかを指定します。
   + `--region` ノードを削除するクラスターのAWSリージョンを指定します。
**注記**  
このオペレーションを呼び出すときに、`--replicas-to-remove` または `--new-replica-count` パラメータの 1 つのみを渡すことができます。

   Linux、macOS、Unix の場合:

   ```
   aws elasticache decrease-replica-count \
       --replication-group-id my-replication-group \
       --new-replica-count 2 \   
       --region us-east-2 \
       --apply-immediately
   ```

   Windows の場合:

   ```
   aws elasticache decrease-replica-count ^
       --replication-group-id my-replication-group ^
       --new-replica-count 3 ^   
       --region us-east-2 ^
       --apply-immediately
   ```

   このオペレーションでは、次のような出力が生成されます (JSON 形式)。

   ```
   {
       "ReplicationGroup": {
           "ReplicationGroupId": "node-test",
           "Description": "node-test"
          },
           "Status": "modifying",
           "PendingModifiedValues": {},
           "MemberClusters": [
               "node-test-001",
               "node-test-002",
               "node-test-003",
               "node-test-004",
               "node-test-005",
               "node-test-006"
           ],
           "NodeGroups": [
               {
                   "NodeGroupId": "0001",
                   "Status": "modifying",
                   "PrimaryEndpoint": {
                       "Address": "node-test.zzzzzz.ng.0001.usw2.cache.amazonaws.com",
                       "Port": 6379
                   },
                   "ReaderEndpoint": {
                       "Address": "node-test-ro.zzzzzz.ng.0001.usw2.cache.amazonaws.com",
                       "Port": 6379
                   },
                   "NodeGroupMembers": [
                       {
                           "CacheClusterId": "node-test-001",
                           "CacheNodeId": "0001",
                           "ReadEndpoint": {
                               "Address": "node-test-001.zzzzzz.0001.usw2.cache.amazonaws.com",
                               "Port": 6379
                           },
                           "PreferredAvailabilityZone": "us-west-2a",
                           "CurrentRole": "primary"
                       },
                       {
                           "CacheClusterId": "node-test-002",
                           "CacheNodeId": "0001",
                           "ReadEndpoint": {
                               "Address": "node-test-002.zzzzzz.0001.usw2.cache.amazonaws.com",
                               "Port": 6379
                           },
                           "PreferredAvailabilityZone": "us-west-2c",
                           "CurrentRole": "replica"
                       },
                       {
                           "CacheClusterId": "node-test-003",
                           "CacheNodeId": "0001",
                           "ReadEndpoint": {
                               "Address": "node-test-003.zzzzzz.0001.usw2.cache.amazonaws.com",
                               "Port": 6379
                           },
                           "PreferredAvailabilityZone": "us-west-2b",
                           "CurrentRole": "replica"
                       },
                       {
                           "CacheClusterId": "node-test-004",
                           "CacheNodeId": "0001",
                           "ReadEndpoint": {
                               "Address": "node-test-004.zzzzzz.0001.usw2.cache.amazonaws.com",
                               "Port": 6379
                           },
                           "PreferredAvailabilityZone": "us-west-2c",
                           "CurrentRole": "replica"
                       },
                       {
                           "CacheClusterId": "node-test-005",
                           "CacheNodeId": "0001",
                           "ReadEndpoint": {
                               "Address": "node-test-005.zzzzzz.0001.usw2.cache.amazonaws.com",
                               "Port": 6379
                           },
                           "PreferredAvailabilityZone": "us-west-2b",
                           "CurrentRole": "replica"
                       },
                       {
                           "CacheClusterId": "node-test-006",
                           "CacheNodeId": "0001",
                           "ReadEndpoint": {
                               "Address": "node-test-006.zzzzzz.0001.usw2.cache.amazonaws.com",
                               "Port": 6379
                           },
                           "PreferredAvailabilityZone": "us-west-2b",
                           "CurrentRole": "replica"
                       }
                   ]
               }
           ],
           "SnapshottingClusterId": "node-test-002",
           "AutomaticFailover": "enabled",
           "MultiAZ": "enabled",
           "SnapshotRetentionLimit": 1,
           "SnapshotWindow": "07:30-08:30",
           "ClusterEnabled": false,
           "CacheNodeType": "cache.r5.large",
            "DataTiering": "disabled",
           "TransitEncryptionEnabled": false,
           "AtRestEncryptionEnabled": false,
           "ARN": "arn:aws:elasticache:us-west-2:123456789012:replicationgroup:node-test"
       }
   }
   ```

または、`decrease-replica-count` を呼び出すこともでき、また `--new-replica-count` パラメータを渡す代わりに、以下に示すように `--replicas-to-remove` パラメータを渡すことができます。

Linux、macOS、Unix の場合:

```
aws elasticache decrease-replica-count \
    --replication-group-id my-replication-group \
    --replicas-to-remove node-test-003 \   
    --region us-east-2 \
    --apply-immediately
```

Windows の場合:

```
aws elasticache decrease-replica-count ^
    --replication-group-id my-replication-group ^
    --replicas-to-remove node-test-003 ^   
    --region us-east-2 ^
    --apply-immediately
```

詳細については、「」のAWS CLIトピックを参照してください[https://docs.aws.amazon.com/cli/latest/reference/elasticache/decrease-replica-count.html](https://docs.aws.amazon.com/cli/latest/reference/elasticache/decrease-replica-count.html)。

## Valkey または Redis OSS で ElastiCache API を使用する
<a name="Clusters.DeleteNode.API2"></a>

ElastiCache API を使用してノードを削除するには、次のようにレプリケーショングループ ID と削除するノードの一覧を使用して `DecreaseReplicaCount` API オペレーションを呼び出します。
+ `ReplicationGroupId` ノードを削除するレプリケーショングループの ID。
+ `ReplicasToRemove` `ReplicasToRemove` パラメータは、変更の適用後に、このクラスターに必要となるノードの数を指定します。
+ `ApplyImmediately` は、次のメンテナンス時にこれらのノードを削除するかどうかを指定します。
+ `Region` ノードを削除するクラスターのAWSリージョンを指定します。

次の例では、my-cluster クラスターからノード 0004 と 0005 を直ちに削除します。

```
https://elasticache.us-west-2.amazonaws.com/
    ?Action=DecreaseReplicaCount
    &ReplicationGroupId=my-replication-group
    &ApplyImmediately=true
    &ReplicasToRemove=node-test-003    
    &Region us-east-2
    &Version=2014-12-01
    &SignatureVersion=4
    &SignatureMethod=HmacSHA256
    &Timestamp=20141201T220302Z
    &X-Amz-Algorithm=&AWS;4-HMAC-SHA256
    &X-Amz-Date=20141201T220302Z
    &X-Amz-SignedHeaders=Host
    &X-Amz-Expires=20141201T220302Z
    &X-Amz-Credential=<credential>
    &X-Amz-Signature=<signature>
```

詳細については、「ElastiCache API トピック [https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_DecreaseReplicaCount.html](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_DecreaseReplicaCount.html)」を参照してください。

## Memcached で ElastiCache API を使用する
<a name="Clusters.DeleteNode.API"></a>

ElastiCache API を使用してノードを削除するには、次のようにキャッシュクラスター ID と削除するノードの一覧を使用して `ModifyCacheCluster` API オペレーションを呼び出します。
+ `CacheClusterId` ノードを削除するクラスターの ID。
+ `NumCacheNodes` `NumCacheNodes` パラメータは、変更の適用後に、このクラスターに必要となるノードの数を指定します。
+ `CacheNodeIdsToRemove.member.n` クラスターから削除するノード ID の一覧。
  + `CacheNodeIdsToRemove.member.1=0004`
  + `CacheNodeIdsToRemove.member.1=0005`
+ `ApplyImmediately` は、次のメンテナンス時にこれらのノードを削除するかどうかを指定します。
+ `Region` ノードを削除するクラスターのAWSリージョンを指定します。

次の例では、my-cluster クラスターからノード 0004 と 0005 を直ちに削除します。

```
https://elasticache.us-west-2.amazonaws.com/
    ?Action=ModifyCacheCluster
    &CacheClusterId=my-cluster
    &ApplyImmediately=true
    &CacheNodeIdsToRemove.member.1=0004
    &CacheNodeIdsToRemove.member.2=0005
    &NumCacheNodes=3   
    &Region us-east-2
    &Version=2014-12-01
    &SignatureVersion=4
    &SignatureMethod=HmacSHA256
    &Timestamp=20141201T220302Z
    &X-Amz-Algorithm=&AWS;4-HMAC-SHA256
    &X-Amz-Date=20141201T220302Z
    &X-Amz-SignedHeaders=Host
    &X-Amz-Expires=20141201T220302Z
    &X-Amz-Credential=<credential>
    &X-Amz-Signature=<signature>
```

詳細については、「ElastiCache API トピック [https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_ModifyCacheCluster.html](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_ModifyCacheCluster.html)」を参照してください。

# ElastiCache で保留中のノードの追加または削除オペレーションをキャンセルする
<a name="Clusters.CancelPending"></a>

ElastiCache クラスターへの変更を直ちに適用しないことを選択した場合、次のメンテナンス時にオペレーションが実行されるまで、オペレーションのステータスは**保留中**になります。保留中の追加または削除のオペレーションをキャンセルできます。

AWS CLI を使用して保留中のノードの追加または削除のオペレーションをキャンセルするには、`modify-cache-cluster` コマンドを使用します。クラスター内のキャッシュノードの現在の数と `num-cache-nodes` を同じ値に設定し、その後に `--apply-immediately` フラグを追加します。これにより、保留中の変更が上書きされます。

保留中のノードの追加または削除をキャンセルする方法:

```
aws elasticache modify-cache-cluster 
	--cache-cluster-id <your-cluster-id> 
	--num-cache-nodes <current-number-of-nodes> 
	--apply-immediately
```

ノードの追加または削除が保留中であるかどうか不明な場合は、`describe-cache-clusters` コマンドを使用してステータスを確認できます。

```
aws elasticache describe-cache-clusters 
	--cache-cluster-id <your-cluster-id>
```

保留中のノードは `PendingModifiedValues` 出力に表示されます。例：

```
"PendingModifiedValues": {
	"NumCacheNodes": 3
	},
```

# ElastiCache でのクラスターの削除
<a name="Clusters.Delete"></a>

ElastiCache クラスターが*使用可能な*状態であれば、クラスターをアクティブに使用しているかどうかに関係なく課金されます。課金を中止するには、クラスターを削除します。

**警告**  
ElastiCache クラスターを削除しても、手動スナップショットは保持されます。クラスターを削除する前に最終スナップショットを作成することもできます。自動キャッシュスナップショットは保持されません。

## の使用AWS マネジメントコンソール
<a name="Clusters.Delete.CON"></a>

次の手順では、デプロイから 1 つのクラスターを削除します。複数のクラスターを削除するには、削除するクラスターごとに同じ手順を繰り返してください。別のクラスターの削除手順を開始する前に、1 つのクラスターの削除が終了するのを待つ必要はありません。

**クラスターを削除するには**

1. にサインインAWS マネジメントコンソールし、[https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/) で Amazon ElastiCache コンソールを開きます。

1. ElastiCache エンジンダッシュボードで、削除するクラスターで実行されているエンジンを選択します。

   そのエンジンを実行しているすべてのクラスターが一覧表示されます。

1. 削除するクラスターを選択するには、クラスターのリストからそのクラスターの名前を選択します。
**重要**  
ElastiCache コンソールから、一度に 1 つずつクラスターを削除できます。複数のクラスターを選択すると、削除オペレーションが無効になります。

1. **[アクション]** で、**[削除]** を選択します。

1. [**クラスターの削除**] 確認画面で、[**削除**] を選択してクラスターを削除するか、[**キャンセル**] を選択してクラスターを保持します。

   **Delete** を選択した場合は、クラスターのステータスが*削除中*に変わります。

クラスターがクラスターのリストに表示されなくなるとすぐに、課金が停止されます。

## を使用して ElastiCache クラスターAWS CLIを削除する
<a name="Clusters.Delete.CLI"></a>

次のコードで、ElastiCache クラスター `my-cluster` を削除します。

```
aws elasticache delete-cache-cluster --cache-cluster-id my-cluster
```

`delete-cache-cluster` CLI アクションは 1 つのクラスターのみを削除します。複数のクラスターを削除する場合は、削除するキャッシュクラスターごとに `delete-cache-cluster` を呼び出します。1 つのクラスターの削除が終了するまで待たなくても次のクラスターを削除できます。

Linux、macOS、Unix の場合:

```
aws elasticache delete-cache-cluster \
    --cache-cluster-id my-cluster \
    --region us-east-2
```

Windows の場合:

```
aws elasticache delete-cache-cluster ^
    --cache-cluster-id my-cluster ^
    --region us-east-2
```

詳細については、「 for ElastiCache AWS CLI」トピックを参照してください[https://docs.aws.amazon.com/cli/latest/reference/elasticache/delete-cache-cluster.html](https://docs.aws.amazon.com/cli/latest/reference/elasticache/delete-cache-cluster.html)。

## ElastiCache API の使用
<a name="Clusters.Delete.API"></a>

次のコードはクラスター `my-cluster` を削除します。

```
https://elasticache.us-west-2.amazonaws.com/    
    ?Action=DeleteCacheCluster
    &CacheClusterId=my-cluster
    &Region us-east-2
    &SignatureVersion=4
    &SignatureMethod=HmacSHA256
    &Timestamp=20150202T220302Z
    &X-Amz-Algorithm=&AWS;4-HMAC-SHA256
    &X-Amz-Date=20150202T220302Z
    &X-Amz-SignedHeaders=Host
    &X-Amz-Expires=20150202T220302Z
    &X-Amz-Credential=<credential>
    &X-Amz-Signature=<signature>
```

`DeleteCacheCluster` API オペレーションは 1 つのクラスターのみを削除します。複数のクラスターを削除する場合は、削除するクラスターごとに `DeleteCacheCluster` を呼び出します。1 つのクラスターの削除が終了するまで待たなくても次のクラスターを削除できます。

詳細については、ElastiCache API リファレンストピック「[https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_DeleteCacheCluster.html](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_DeleteCacheCluster.html)」を参照してください。

# ElastiCache クラスターまたはレプリケーショングループへのアクセス
<a name="accessing-elasticache"></a>

Amazon ElastiCache インスタンスは、Amazon EC2 インスタンスを介してアクセスするように設計されています。

Amazon Virtual Private Cloud (Amazon VPC) 内で ElastiCache インスタンスを起動した場合は、同じ Amazon VPC 内の Amazon EC2 インスタンスから ElastiCache インスタンスにアクセスできます。または、VPC ピアリングを使用して、異なる Amazon VPC 内の Amazon EC2 から ElastiCache インスタンスにアクセスできます。

ElastiCache インスタンスを EC2 Classic で起動した場合、そのインスタンスに関連付けられた Amazon EC2 セキュリティグループに、キャッシュセキュリティグループへのアクセスを許可することで、EC2 インスタンスにクラスターへのアクセスを許可することができます。デフォルトでは、クラスターへのアクセスはそのクラスターを起動したアカウントに制限されています。

**Topics**
+ [クラスターまたはレプリケーショングループへのアクセスの許可](#grant-access)

## クラスターまたはレプリケーショングループへのアクセスの許可
<a name="grant-access"></a>

### EC2-VPC でクラスターを起動した
<a name="authorize-access-vpc"></a>

Amazon Virtual Private Cloud (Amazon VPC) でクラスターを起動した場合、同じ Amazon VPC で実行されている Amazon EC2 インスタンスからのみ ElastiCache クラスターに接続できます。この場合、クラスターに対するネットワーク進入を許可する必要があります。

**注記**  
[*Local Zones*] を使用している場合、それを有効にしていることを確認します。詳細については、「[Local Zones の有効化](https://docs.aws.amazon.com//AWSEC2/latest/UserGuide/using-regions-availability-zones.html#opt-in-local-zone)」を参照してください。これにより、VPC はそのローカルゾーンに拡張され、VPC はそのサブネットを他のアベイラビリティーゾーン、関連するゲートウェイ、ルートテーブル、およびその他のセキュリティグループの考慮事項のサブネットとして扱い、自動的に調整されます。

**Amazon VPC セキュリティグループからクラスターへのネットワーク進入を許可するには**

1. にサインインAWS マネジメントコンソールし、[https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) で Amazon EC2 コンソールを開きます。

1. ナビゲーションペインで、**[ネットワーク & セキュリティ]** の下にある **[セキュリティグループ]** を選択します。

1. セキュリティグループのリストから、Amazon VPC のセキュリティグループを選択します。ElastiCache 用のセキュリティグループを作成した場合を除き、このセキュリティグループは、[*default*] という名前になります。

1. **Inbound** タブを選択し、次の操作を行います。

   1. **Edit** (編集) を選択します。

   1. **ルールの追加** を選択します。

   1. **Type** 列で **Custom TCP rule** を選択します。

   1. **Port range** ボックスに、クラスターノードのポート番号を入力します。この番号は、クラスターの起動時に指定した番号と同じ番号である必要があります。Memcached のデフォルトポートは **11211** です。 ​Valkey および Redis OSS のデフォルトポートは **6379** です。

   1. [**Source**] ボックスで [**Anywhere**] を選択します。ポート範囲が 0.0.0.0/0 になるため、Amazon VPC 内で起動したすべての Amazon EC2 インスタンスを ElastiCache ノードに接続できます。
**重要**  
ElastiCache クラスターを 0.0.0.0/0 に設定すると、パブリック IP アドレスが割り当てられず、VPC 外からアクセスできないため、クラスターはインターネットに公開されません。ただし、お客様のアカウントの他の Amazon EC2 インスタンスにデフォルトのセキュリティグループが適用され、そのインスタンスにパブリック IP アドレスが付与される場合があります。それがデフォルトポートで何かを実行している場合、そのサービスが意図せず公開されることがあります。そのため、ElastiCache でのみ使用される VPC のセキュリティグループを作成されることをお勧めします。詳細については、「[ カスタムセキュリティグループ](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-network-security.html#creating-your-own-security-groups)」を参照してください。

   1. **[保存]** を選択します。

Amazon VPC で Amazon EC2 インスタンスを起動すると、そのインスタンスは ElastiCache クラスターに接続できます。

### 外部から ElastiCache リソースにアクセスするAWS
<a name="access-from-outside-aws"></a>

Amazon ElastiCache は、クラウドベースのインメモリキーバリューストアを提供するAWSサービスです。このサービスは、内部からのみアクセスするように設計されていますAWS。ElastiCache クラスターが VPC 内でホストされている場合は、ネットワークアドレス変換 (NAT) インスタンスを使用して外部からアクセスできるようにできます。

#### 要件
<a name="access-from-outside-aws-requirements"></a>

AWS外部から ElastiCache リソースにアクセスするには、以下の要件を満たしている必要があります。
+ クラスターが VPC 内にあり、ネットワークアドレス変換（NAT）インスタンスを介してアクセスできる必要があります。これは必須の要件であり、例外はありません。
+ NAT インスタンスがクラスターと同じ VPC 内で起動されている必要があります。
+ NAT インスタンスがクラスターとは別のパブリックサブネットで起動されている必要があります。
+ Elastic IP (EIP) アドレスが NAT インスタンスに関連付けられている必要があります。NAT インスタンスのポートは、iptables のポート転送機能を使用して VPC 内のキャッシュノードポートに転送されます。

#### 考慮事項
<a name="access-from-outside-aws-considerations"></a>

ElastiCache 外部から ElastiCache リソースにアクセスする際には、以下の点を考慮してください。
+ クライアントは EIP に接続し、NAT インスタンスのポートをキャッシュします。NAT インスタンスでポート転送すると、トラフィックは適切なクラスターノードに転送されます。
+ クラスターノードが追加または交換されたら、この変更が反映されるように iptables ルールが更新される必要があります。

#### 制限事項
<a name="access-from-outside-aws-limitations"></a>

このアプローチは、テストおよび開発の目的にしか使用できません。以下の制限があるため、本稼働で使用することは推奨されません。
+ NAT インスタンスは、クライアントと複数のクラスターの間のプロキシとして機能します。プロキシを追加すると、クラスターのパフォーマンスに影響が及びます。この影響は、NAT インスタンスを介してアクセスするクラスターの数に応じて増大します。
+ クライアントから NAT インスタンスへのトラフィックは暗号化されません。したがって、NAT インスタンスを介して機密データを送信することは回避してください。
+ NAT インスタンスは、別のインスタンスを維持するためのオーバーヘッドを増加させます。
+ NAT インスタンスは単一障害点として機能します。VPC で高可用性 NAT をセットアップする方法については、「[Amazon VPC NAT インスタンスの高可用性: 例](https://aws.amazon.com/articles/2781451301784570)」を参照してください。

#### 外部から ElastiCache リソースにアクセスする方法AWS
<a name="access-from-outside-aws-how-to"></a>

次の手順は、NAT インスタンスを使用して ElastiCache リソースに接続する方法を示しています。

これらのステップは、以下を前提としています。
+ `iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 6380 -j DNAT --to 10.0.1.231:6379`
+ `iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 6381 -j DNAT --to 10.0.1.232:6379`

次に、逆方向の NAT が必要です。

`iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source 10.0.0.55`

デフォルトで無効になっている IP 転送も有効にする必要があります。

`sudo sed -i 's/net.ipv4.ip_forward=0/net.ipv4.ip_forward=1/g' /etc/sysctl.conf sudo sysctl --system`
+ 以下を使って、Memcached クラスターにアクセスします。
  + IP アドレス – *10.0.1.230*
  + デフォルトの Memcached ポート – *11211*
  + セキュリティグループ – *\$110\$1.0\$1.0\$1.55\$1*
+ 以下を使って、Valkey または Redis OSS クラスターにアクセスします。
  + IP アドレス – *10.0.1.230*
  + デフォルトポート – *6379*
  + セキュリティグループ – *sg-bd56b7da*
  + AWSインスタンス IP アドレス – *198.99.100.27*
+ 信頼済みクライアントの IP アドレスが *198.51.100.27* である。
+ NAT インスタンスの Elastic IP アドレスが *203.0.113.73* である。
+ NAT インスタンスのセキュリティグループが *sg-ce56b7a9* である。



**NAT インスタンスを使用して ElastiCache リソースに接続するには**

1. クラスターと同じ VPC 内のパブリックサブネット内に NAT インスタンスを作成します。

   デフォルトでは、VPC ウィザードが *cache.m1.small* ノードタイプを起動します。必要に応じてノードサイズを選択する必要があります。AWS外部から ElastiCache にアクセスできるようにするには、EC2 NAT AMI を使用する必要があります。

   NAT インスタンスの作成については、AWS「VPC ユーザーガイド」の[「NAT インスタンス](https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_NAT_Instance.html)」を参照してください。

1. クラスターと NAT インスタンスのセキュリティグループルールを作成します。

   NAT インスタンスのセキュリティグループとクラスターインスタンスには以下のルールが必要です。
   + 2 つのインバウンドルール
     + Memcached の場合、最初のルールは、信頼済みクライアントから、NAT インスタンスから転送された各キャッシュポート (11211〜11213) への TCP 接続を許可することです。
     + Valkey および Redis OSS の場合、最初のルールは、信頼済みクライアントから、NAT インスタンスから転送された各キャッシュポート (6379〜6381) への TCP 接続を許可することです。
     + 信頼済みクライアントへの SSH アクセスを許可する 2 番目のルール。  
**NAT インスタンスのセキュリティグループ - インバウンドルール (Memcached)**    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/AmazonElastiCache/latest/dg/accessing-elasticache.html)  
**NAT インスタンスセキュリティグループ - インバウンドルール (Valkey または Redis OSS)**    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/AmazonElastiCache/latest/dg/accessing-elasticache.html)
   + Memcached の場合、キャッシュポート (11211) への TCP 接続を許可するアウトバウンドルール。  
**NAT インスタンスのセキュリティグループ - アウトバウンドルール**    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/AmazonElastiCache/latest/dg/accessing-elasticache.html)
   + Valkey または Redis OSS の場合、キャッシュポート (6379) への TCP 接続を許可するアウトバウンドルール。  
**NAT インスタンスのセキュリティグループ - アウトバウンドルール**    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/AmazonElastiCache/latest/dg/accessing-elasticache.html)
   + Memcached の場合、NAT インスタンスからキャッシュポート (11211) への TCP 接続を許可するクラスターのセキュリティグループのインバウンドルール。  
**クラスターインスタンスのセキュリティグループ - インバウンドルール**    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/AmazonElastiCache/latest/dg/accessing-elasticache.html)
   + Valkey または Redis OSS の場合、NAT インスタンスからキャッシュポート (6379) への TCP 接続を許可するクラスターのセキュリティグループのインバウンドルール。  
**クラスターインスタンスのセキュリティグループ - インバウンドルール**    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/AmazonElastiCache/latest/dg/accessing-elasticache.html)

1. ルールを検証します。
   + 信頼済みクライアントが NAT インスタンスに SSH 接続できることを確認します。
   + 信頼済みクライアントが NAT インスタンスからクラスターに接続できることを確認します。

1. **Memcached**

   NAT インスタンスに iptables ルールを追加します。

   NAT インスタンスからのキャッシュポートをクラスターノードに転送するには、iptables ルールをクラスターのノードごとに NAT テーブルに追加する必要があります。以下に例を示します。

   ```
   iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 11211 -j DNAT --to 10.0.1.230:11211
   ```

   ポート番号は、クラスターのノードごとに一意である必要があります。たとえば、ポート 11211～11213 を使用する 3 つのノードで構成される Memcached クラスターを使用している場合、ルールは次のようになります。

   ```
   iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 11211 -j DNAT --to 10.0.1.230:11211
   iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 11212 -j DNAT --to 10.0.1.231:11211
   iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 11213 -j DNAT --to 10.0.1.232:11211
   ```

   信頼済みクライアントがクラスターに接続できることを確認します。

   信頼済みクライアントは、NAT インスタンスに関連付けられている EIP と、適切なクラスターノードに対応するクラスターポートに接続できる必要があります。たとえば、PHP の接続文字列は次のようになります。

   ```
   $memcached->connect( '203.0.113.73', 11211 );
   $memcached->connect( '203.0.113.73', 11212 );
   $memcached->connect( '203.0.113.73', 11213 );
   ```

   telnet クライアントを使用して接続を検証することもできます。例えば、次のようになります。

   ```
   telnet 203.0.113.73 11211
   telnet 203.0.113.73 11212
   telnet 203.0.113.73 11213
   ```

   **Valkey または Redis OSS**

   NAT インスタンスに iptables ルールを追加します。

   NAT インスタンスからのキャッシュポートをクラスターノードに転送するには、iptables ルールをクラスターのノードごとに NAT テーブルに追加する必要があります。以下に例を示します。

   ```
   iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 6379 -j DNAT --to 10.0.1.230:6379
   ```

   ポート番号は、クラスターのノードごとに一意である必要があります。例えば、ポート 6379～6381 を使用する 3 つのノードで構成される Redis OSS クラスターを使用している場合、ルールは次のようになります。

   ```
   iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 6379 -j DNAT --to 10.0.1.230:6379
   iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 6380 -j DNAT --to 10.0.1.231:6379
   iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 6381 -j DNAT --to 10.0.1.232:6379
   ```

   信頼済みクライアントがクラスターに接続できることを確認します。

   信頼済みクライアントは、NAT インスタンスに関連付けられている EIP と、適切なクラスターノードに対応するクラスターポートに接続できる必要があります。たとえば、PHP の接続文字列は次のようになります。

   ```
   redis->connect( '203.0.113.73', 6379 );
   redis->connect( '203.0.113.73', 6380 );
   redis->connect( '203.0.113.73', 6381 );
   ```

   telnet クライアントを使用して接続を検証することもできます。例えば、次のようになります。

   ```
   telnet 203.0.113.73 6379
   telnet 203.0.113.73 6380
   telnet 203.0.113.73 6381
   ```

1. iptables 設定を保存します。

   ルールをテストし、検証してから保存します。Red Hat ベースの Linux ディストリビューション (Amazon Linux など) を使用している場合は、次のコマンドを実行します。

   ```
   service iptables save
   ```

#### 関連トピック
<a name="access-from-outside-aws-see-also"></a>

以下のトピックも役に立つ場合があります。
+ [Amazon VPC の ElastiCache キャッシュにアクセスするためのアクセスパターン](elasticache-vpc-accessing.md)
+ [お客様のデータセンター内で実行されるアプリケーションからの ElastiCache キャッシュへのアクセス](elasticache-vpc-accessing.md#elasticache-vpc-accessing-data-center)
+ [NAT インスタンス](https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_NAT_Instance.html)
+ [ElastiCache クライアントの設定](ClientConfig.md)
+ [Amazon VPC NAT インスタンスの高可用性: 例](https://aws.amazon.com/articles/2781451301784570)

# ElastiCache での接続エンドポイントの検索
<a name="Endpoints"></a>

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

AWS PrivateLink を介してインターフェイス VPC エンドポイントを作成し、VPC エンドポイントと ElastiCache API エンドポイントの間にプライベート接続を確立することもできます。詳細については、「[ElastiCache API とインターフェイス VPC エンドポイント (AWS PrivateLink)](elasticache-privatelink.md)」を参照してください。

**Valkey または Redis OSS で使用するエンドポイント。**
+ **スタンドアロンノード**の場合は、ノードのエンドポイントを読み取りと書き込みの両方のオペレーションに使用します。

   
+ **Valkey クラスターあるいは Valkey または Redis OSS (クラスターモードが無効) クラスター**の場合は、すべての書き込みオペレーションで*プライマリエンドポイント*を使用します。*読み込みエンドポイント*を使用して、すべてのリードレプリカ間でエンドポイントへの着信接続を均等に分割します。個々の*ノードエンドポイント* (API/CLI ではリードエンドポイント) を読み取りオペレーションに使用します。

   
+ **Valkey または Redis OSS (クラスターモードが有効) クラスター**の場合は、クラスターモードが有効なコマンドをサポートするすべてのオペレーションで、クラスターの*設定エンドポイント*を使用します。Valkey クラスター、または Redis OSS 3.2 以上の Redis OSS クラスターをサポートするクライアントを使用する必要があります。個々のノードエンドポイント (API/CLI ではリードエンドポイント) から読み取ることもできます。

   

以下のセクションで、実行するエンジンに必要なエンドポイントの検索について説明します。

**Memcached で使用するエンドポイント。**

**Memcached 用の ElastiCache サーバーレスキャッシュ**の場合は、コンソールからクラスターエンドポイントの DNS とポートを取得するだけです。

AWS CLI から `describe-serverless-caches` コマンドを使用してエンドポイント情報を取得します。

Linux

```
aws elasticache describe-serverless-caches --serverless-cache-name CacheName
```

Windows

```
aws elasticache describe-serverless-caches --serverless-cache-name CacheName
```

上記のオペレーションからの出力は以下のような JSON 形式になります。

```
{
    "ServerlessCaches": [
        {
            "ServerlessCacheName": "serverless-memcached",
            "Description": "test",
            "CreateTime": 1697659642.136,
            "Status": "available",
            "Engine": "memcached",
            "MajorEngineVersion": "1.6",
            "FullEngineVersion": "21",
            "SecurityGroupIds": [
                "sg-083eda453e1e51310"
            ],
            "Endpoint": {
                "Address": "serverless-memcached-01.amazonaws.com",
                "Port":11211
            },
            "ARN": "<the ARN>",
            "SubnetIds": [
                "subnet-0cf759df15bd4dc65",
                "subnet-09e1307e8f1560d17"
            ],
            "SnapshotRetentionLimit": 0,
            "DailySnapshotTime": "03:00"
        }
    ]
}
```

**インスタンスベースの Memcached クラスターの場合は**、自動検出を使用すると、クラスターの*設定エンドポイント*を Memcached クライアントの設定に使用できます。つまり、自動検出をサポートするクライアントを使用する必要があります。

自動検出を使用しない場合は、読み取りと書き込みに個々のノードのエンドポイントを使用するようにクライアントを設定する必要があります。また、ノードの追加や削除時にはそれらのエンドポイントを更新する必要があります。

## Valkey または Redis OSS (クラスターモードが無効) クラスターのエンドポイントを検索する (コンソール)
<a name="Endpoints.Find.Redis"></a>

Valkey クラスターあるいは Valkey または Redis OSS (クラスターモードが無効) クラスターにノードが 1 つだけある場合、ノードのエンドポイントは読み取りと書き込みの両方に使用されます。Valkey クラスターあるいは Valkey または Redis OSS (クラスターモードが無効) クラスターに複数のノードがある場合は、*プライマリエンドポイント*、*リーダーエンドポイント*、*ノードエンドポイント* の 3 種類のエンドポイントがあります。

プライマリエンドポイントは、常にクラスターのプライマリノードに解決される DNS 名です。プライマリエンドポイントは、リードレプリカのプライマリロールへの昇格など、クラスターに対する変更の影響を受けません。書き込みアクティビティの場合、アプリケーションをプライマリエンドポイントに接続することをお勧めします。

リーダーエンドポイントによって、ElastiCache for Redis OSS クラスター内のすべてのリードレプリカ間でエンドポイントへの着信接続が均等に分割されます。アプリケーションがいつ接続を作成するか、アプリケーションが接続をどのように (再) 利用するかなどの追加要因によって、トラフィックの分散が決定されます。レプリカが追加または削除されても、読み込みエンドポイントはリアルタイムでクラスターの変更に対応します。ElastiCache for Redis OSS クラスターの複数のリードレプリカを異なる AWS アベイラビリティーゾーン (AZ) に配置して、リーダーエンドポイントの高可用性を確保することができます。

**注記**  
リーダーエンドポイントはロードバランサーではありません。これは、ラウンドロビン方式でレプリカノードの 1 つの IP アドレスに解決される DNS レコードです。

読み取りアクティビティの場合、アプリケーションはクラスター内のいずれのノードにも接続できます。プライマリエンドポイントとは異なり、ノードエンドポイントは特定のエンドポイントに解決されます。レプリカの追加または削除など、クラスターに変更を加えた場合は、アプリケーションでノードエンドポイントを更新する必要があります。

**Valkey クラスターあるいは Valkey または Redis OSS (クラスターモードが無効) クラスターのエンドポイントを検索するには**

1. AWS マネジメントコンソール にサインインして、ElastiCache コンソール ([https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/)) を開きます。

1. ナビゲーションペインで **[Valkey クラスター]** または **[Redis OSS クラスター]** を選択します。

   クラスター画面には、Valkey クラスターあるいは Valkey または Redis OSS (クラスターモードが無効) クラスターと、Valkey または Redis OSS (クラスターモードが有効) クラスターのリストが表示されます。

1. クラスターのプライマリエンドポイントや読み込みエンドポイントを検索するには、クラスターの名前 (左にあるボタンではない) を選択します。  
![\[イメージ: Valkey クラスターあるいは Valkey または Redis OSS (クラスターモードが無効) クラスターのプライマリエンドポイント\]](http://docs.aws.amazon.com/ja_jp/AmazonElastiCache/latest/dg/images/Reader-Endpoint.png)

   *Valkey クラスターあるいは Valkey または Redis OSS (クラスターモードが無効) クラスターのプライマリエンドポイントおよびリーダーエンドポイント*

   クラスターに 1 つのみのノードがある場合、プライマリエンドポイントはないため、次のステップに進むことができます。

1. Valkey クラスターあるいは Valkey または Redis OSS (クラスターモードが無効) クラスターにレプリカノードがある場合は、クラスターの名前を選択してから **[ノード]** タブを選択して、クラスターのレプリカノードエンドポイントを検索できます。

   ノードの画面では、クラスター内のプライマリとレプリカの各ノードがそのエンドポイントと共に表示されます。  
![\[イメージ: Valkey クラスターあるいは Valkey または Redis OSS (クラスターモードが無効) クラスターのノードエンドポイント\]](http://docs.aws.amazon.com/ja_jp/AmazonElastiCache/latest/dg/images/ElastiCache-Endpoints-Redis-Node.png)

   *Valkey クラスターあるいは Valkey または Redis OSS (クラスターモードが無効) クラスターのノードエンドポイント*

1. エンドポイントをクリップボードにコピーするには:

   1. 一度に 1 つのみ、コピーするエンドポイントを見つけます。

   1. エンドポイントアドレスのすぐ前にあるコピーアイコンを選択します。

   エンドポイントがクリップボードにコピーされます。エンドポイントを使用してノードに接続する方法については、「[Memcached ノードに接続する](nodes-connecting.md#nodes-connecting.mem)」を参照してください。

Valkey あるいは Valkey または Redis OSS (クラスターモードが無効) のプライマリエンドポイントは以下のようになります。転送時の暗号化が有効かどうかによって違いがあります。

**転送時の暗号化が無効**

```
clusterName.xxxxxx.nodeId.regionAndAz.cache.amazonaws.com:port
			
redis-01.7abc2d.0001.usw2.cache.amazonaws.com:6379
```

**転送時の暗号化が有効**

```
master.clusterName.xxxxxx.regionAndAz.cache.amazonaws.com:port

master.ncit.ameaqx.use1.cache.amazonaws.com:6379
```

## Valkey または Redis OSS (クラスターモードが有効) クラスターのエンドポイントを検索する (コンソール)
<a name="Endpoints.Find.RedisCluster"></a>

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

**Valkey または Redis OSS (クラスターモードが有効) クラスターのエンドポイントを検索するには**

1. AWS マネジメントコンソール にサインインして、ElastiCache コンソール ([https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/)) を開きます。

1. ナビゲーションペインで **[Valkey クラスター]** または **[Redis OSS クラスター]** を選択します。

   クラスターの一覧が表示されています。接続するクラスターを選択します。

1. クラスターの設定エンドポイントを検索するには、ラジオボタンではなくクラスターの名前を選択します。

1. **[Configuration endpoint]** (設定エンドポイント) は **[Cluster details]** (クラスターの詳細) の下に表示されます。コピーするには、エンドポイントの左側にある *[copy]* (コピー) アイコンを選択します。

## クラスターのエンドポイントの検索 (コンソール) (Memcached)
<a name="Endpoints.Find.Memcached"></a>

すべての Memcached エンドポイントは読み取り/書き込みエンドポイントです。Memcached クラスター内のノードに接続するには、アプリケーションは、各ノードのエンドポイントを使用できるか、クラスターの設定エンドポイントと自動検出を使用できる必要があります。自動検出を使用するには、自動検出をサポートするクライアントを使用する必要があります。

自動検出を使用するとき、クライアントアプリケーションは設定エンドポイントを使用して Memcached クラスターに接続します。ノードの追加や削除を行ってクラスターをスケーリングするたびに、アプリケーションは自動的にクラスターのすべてのノードを「検出して、それらのどのノードにも接続できます。アプリケーションで自動検出が行われない場合は、ノードを追加したり削除したりするたびにエンドポイントを手動で更新する必要があります。

エンドポイントをコピーするには、エンドポイントアドレスのすぐ前にあるコピーアイコンを選択します。エンドポイントを使用してノードに接続する方法については、「[Memcached ノードに接続する](nodes-connecting.md#nodes-connecting.mem)」を参照してください。

設定エンドポイントとノードエンドポイントはよく似ています。その違いは以下の**太字**の部分です。

```
myclustername.xxxxxx.cfg.usw2.cache.amazonaws.com:port   # configuration endpoint contains "cfg"
myclustername.xxxxxx.0001.usw2.cache.amazonaws.com:port  # node endpoint for node 0001
```

**重要**  
自動検出クライアントが設定エンドポイントとして CNAME を認識するように、Memcached 設定エンドポイントの CNAME を作成する場合は、CNAME に `.cfg.` を含める必要があります。

## エンドポイントの検索 (AWS CLI)
<a name="Endpoints.Find.CLI"></a>

Memcached の場合、Amazon ElastiCache の AWS CLI を使用して、ノードおよびクラスターのエンドポイントを検出できます。

Redis OSS の場合、Amazon ElastiCache の AWS CLI を使用して、ノード、クラスター、レプリケーショングループのエンドポイントを検出できます。

**Topics**
+ [ノードとクラスターのエンドポイントの検索(AWS CLI)](#Endpoints.Find.CLI.Nodes)
+ [Valkey または Redis OSS レプリケーショングループのエンドポイントを検索する (AWS CLI）](#Endpoints.Find.CLI.ReplGroups)

### ノードとクラスターのエンドポイントの検索(AWS CLI)
<a name="Endpoints.Find.CLI.Nodes"></a>

AWS CLI で `describe-cache-clusters` コマンドを使用して、クラスターとそのノードのエンドポイントを検出できます。Valkey または Redis OSS クラスターでは、このコマンドはクラスターエンドポイントを返します。Memcached クラスターでは、コマンドは設定エンドポイントを返します。オプションのパラメータ `--show-cache-node-info` を含めた場合、コマンドはクラスター内の個々のノードにエンドポイントを返します。

**Example**  
次のコマンドは、Memcached クラスター *mycluster* の設定エンドポイント (`ConfigurationEndpoint`) と個々のノードエンドポイント (`Endpoint`) を取得します。  
Linux、macOS、Unix の場合:  

```
aws elasticache describe-cache-clusters \
    --cache-cluster-id mycluster \
    --show-cache-node-info
```
Windows の場合:  

```
aws elasticache describe-cache-clusters ^
    --cache-cluster-id mycluster ^
    --show-cache-node-info
```
上記のオペレーションからの出力は以下のような JSON 形式になります。  

```
{
   "CacheClusters": [
   {
       "Engine": "memcached", 
       "CacheNodes": [
          {
             "CacheNodeId": "0001", 
             "Endpoint": {
                "Port": 11211, 
                "Address": "mycluster.amazonaws.com"
             }, 
                "CacheNodeStatus": "available", 
                "ParameterGroupStatus": "in-sync", 
                "CacheNodeCreateTime": "2016-09-22T21:30:29.967Z", 
                "CustomerAvailabilityZone": "us-west-2b"
          }, 
          {
             "CacheNodeId": "0002", 
             "Endpoint": {
                "Port": 11211, 
                "Address": "mycluster.amazonaws.com"
             }, 
                "CacheNodeStatus": "available", 
                "ParameterGroupStatus": "in-sync", 
                "CacheNodeCreateTime": "2016-09-22T21:30:29.967Z", 
                "CustomerAvailabilityZone": "us-west-2b"
          }, 
          {
                "CacheNodeId": "0003", 
                "Endpoint": {
                   "Port": 11211, 
                   "Address": "mycluster.amazonaws.com"
                }, 
                   "CacheNodeStatus": "available", 
                   "ParameterGroupStatus": "in-sync", 
                   "CacheNodeCreateTime": "2016-09-22T21:30:29.967Z", 
                   "CustomerAvailabilityZone": "us-west-2b"
          }
       ], 
       "CacheParameterGroup": {
       "CacheNodeIdsToReboot": [], 
       "CacheParameterGroupName": "default.memcached1.4", 
       "ParameterApplyStatus": "in-sync"
            }, 
            "CacheClusterId": "mycluster", 
            "PreferredAvailabilityZone": "us-west-2b", 
            "ConfigurationEndpoint": {
                "Port": 11211, 
                "Address": "mycluster.amazonaws.com"
            }, 
            "CacheSecurityGroups": [], 
            "CacheClusterCreateTime": "2016-09-22T21:30:29.967Z", 
            "AutoMinorVersionUpgrade": true, 
            "CacheClusterStatus": "available", 
            "NumCacheNodes": 3, 
            "ClientDownloadLandingPage": "https://console.aws.amazon.com/elasticache/home#client-download:", 
            "CacheSubnetGroupName": "default", 
            "EngineVersion": "1.4.24", 
            "PendingModifiedValues": {}, 
            "PreferredMaintenanceWindow": "mon:09:00-mon:10:00", 
            "CacheNodeType": "cache.m4.large",
             "DataTiering": "disabled"
        }
    ]   
}
```
自動検出クライアントが設定エンドポイントとして CNAME を認識するように、Memcached 設定エンドポイントの CNAME を作成する場合は、CNAME に `.cfg.` を含める必要があります。例えば、php.ini ファイルの `mycluster.cfg.local` パラメータで `session.save_path` を含めます。

**Example**  
Valkey および Redis OSS では、次のコマンドは単一ノードのクラスター *mycluster* に関するクラスター情報を取得します。  
`--cache-cluster-id` パラメータは、単一ノードの Valkey または Redis OSS (クラスターモードが無効) クラスター ID または Redis レプリケーショングループ内の特定のノード ID で使用できます。レプリケーショングループの `--cache-cluster-id` は、`0001` のような 4 桁の値です。`--cache-cluster-id` がレプリケーショングループ内のクラスター (ノード) の ID である場合は、`replication-group-id` が出力に含まれます。
Linux、macOS、Unix の場合:  

```
aws elasticache describe-cache-clusters \
    --cache-cluster-id redis-cluster \
    --show-cache-node-info
```
Windows の場合:  

```
aws elasticache describe-cache-clusters ^
    --cache-cluster-id redis-cluster ^
    --show-cache-node-info
```
上記のオペレーションからの出力は以下のような JSON 形式になります。  

```
{
    "CacheClusters": [
        {
            "CacheClusterStatus": "available",
            "SecurityGroups": [
                {
                    "SecurityGroupId": "sg-77186e0d",
                    "Status": "active"
                }
            ],
            "CacheNodes": [
                {
                    "CustomerAvailabilityZone": "us-east-1b",
                    "CacheNodeCreateTime": "2018-04-25T18:19:28.241Z",
                    "CacheNodeStatus": "available",
                    "CacheNodeId": "0001",
                    "Endpoint": {
                        "Address": "redis-cluster.amazonaws.com",
                        "Port": 6379
                    },
                    "ParameterGroupStatus": "in-sync"
                }
            ],
            "AtRestEncryptionEnabled": false,
            "CacheClusterId": "redis-cluster",
            "TransitEncryptionEnabled": false,
            "CacheParameterGroup": {
                "ParameterApplyStatus": "in-sync",
                "CacheNodeIdsToReboot": [],
                "CacheParameterGroupName": "default.redis3.2"
            },
            "NumCacheNodes": 1,
            "PreferredAvailabilityZone": "us-east-1b",
            "AutoMinorVersionUpgrade": true,
            "Engine": "redis",
            "AuthTokenEnabled": false,
            "PendingModifiedValues": {},
            "PreferredMaintenanceWindow": "tue:08:30-tue:09:30",
            "CacheSecurityGroups": [],
            "CacheSubnetGroupName": "default",
            "CacheNodeType": "cache.t2.small",
             "DataTiering": "disabled"
            "EngineVersion": "3.2.10",
            "ClientDownloadLandingPage": "https://console.aws.amazon.com/elasticache/home#client-download:",
            "CacheClusterCreateTime": "2018-04-25T18:19:28.241Z"
        }
    ]
}
```

詳細については、トピック「[describe-cache-clusters](https://docs.aws.amazon.com/cli/latest/reference/elasticache/describe-cache-clusters.html)」を参照してください。

### Valkey または Redis OSS レプリケーショングループのエンドポイントを検索する (AWS CLI）
<a name="Endpoints.Find.CLI.ReplGroups"></a>

AWS CLI で `describe-replication-groups` コマンドを使用して、レプリケーショングループとそのクラスターのエンドポイントを検出できます。このコマンドでは、読み込みエンドポイントと合わせて、レプリケーショングループのプライマリエンドポイント、レプリケーショングループ内のすべてのクラスター (ノード)、およびそのエンドポイントのリストが返ります。

次のオペレーションでは、レプリケーショングループ `myreplgroup` のプライマリエンドポイントと読み込みエンドポイントが取得されます。すべての書き込みオペレーションにプライマリエンドポイントを使用します。

```
aws elasticache describe-replication-groups \
    --replication-group-id myreplgroup
```

Windows の場合:

```
aws elasticache describe-replication-groups ^
    --replication-group-id myreplgroup
```

このオペレーションからの出力は以下のような JSON 形式になります。

```
{
   "ReplicationGroups": [
     {
       "Status": "available", 
       "Description": "test", 
       "NodeGroups": [
         {
            "Status": "available", 
               "NodeGroupMembers": [
                  {
                     "CurrentRole": "primary", 
                     "PreferredAvailabilityZone": "us-west-2a", 
                     "CacheNodeId": "0001", 
                     "ReadEndpoint": {
                        "Port": 6379, 
                        "Address": "myreplgroup-001.amazonaws.com"
                     }, 
                     "CacheClusterId": "myreplgroup-001"
                  }, 
                  {
                     "CurrentRole": "replica", 
                     "PreferredAvailabilityZone": "us-west-2b", 
                     "CacheNodeId": "0001", 
                     "ReadEndpoint": {
                        "Port": 6379, 
                        "Address": "myreplgroup-002.amazonaws.com"
                     }, 
                     "CacheClusterId": "myreplgroup-002"
                  }, 
                  {
                     "CurrentRole": "replica", 
                     "PreferredAvailabilityZone": "us-west-2c", 
                     "CacheNodeId": "0001", 
                     "ReadEndpoint": {
                        "Port": 6379, 
                        "Address": "myreplgroup-003.amazonaws.com"
                     }, 
                     "CacheClusterId": "myreplgroup-003"
                  }
               ], 
               "NodeGroupId": "0001", 
               "PrimaryEndpoint": {
                  "Port": 6379, 
                  "Address": "myreplgroup.amazonaws.com"
               },
               "ReaderEndpoint": {
                  "Port": 6379, 
                  "Address": "myreplgroup-ro.amazonaws.com"
               }
            }
         ], 
         "ReplicationGroupId": "myreplgroup", 
         "AutomaticFailover": "enabled", 
         "SnapshottingClusterId": "myreplgroup-002", 
         "MemberClusters": [
            "myreplgroup-001", 
            "myreplgroup-002", 
            "myreplgroup-003"
         ], 
         "PendingModifiedValues": {}
      }
   ]
}
```

詳細については、*AWS CLI コマンドリファレンス*の [describe-replication-groups](https://docs.aws.amazon.com/cli/latest/reference/elasticache/describe-replication-groups.html) を参照してください。

## エンドポイントの検索 (ElastiCache API)
<a name="Endpoints.Find.API"></a>

Memcached の場合、Amazon ElastiCache API を使用して、ノードおよびクラスターのエンドポイントを検出できます。

Redis OSS の場合、Amazon ElastiCache API を使用して、ノード、クラスター、レプリケーショングループのエンドポイントを検出できます。

**Topics**
+ [ノードとクラスターのエンドポイントの検索 (ElastiCache API)](#Endpoints.Find.API.Nodes)
+ [Valkey または Redis OSS レプリケーショングループのエンドポイントを検索する (ElastiCache API）](#Endpoints.Find.API.ReplGroups)

### ノードとクラスターのエンドポイントの検索 (ElastiCache API)
<a name="Endpoints.Find.API.Nodes"></a>

ElastiCache API を使用して、`DescribeCacheClusters` アクションでクラスターのエンドポイントとそのノードを検出することができます。Valkey または Redis OSS クラスターでは、このコマンドはクラスターエンドポイントを返します。Memcached クラスターでは、コマンドは設定エンドポイントを返します。オプションのパラメータ `ShowCacheNodeInfo` を含めた場合、アクションはクラスター内の個々のノードのエンドポイントも返します。

**Example**  
Memcached の場合、次のコマンドは、Memcached クラスター *mycluster* の設定エンドポイント (`ConfigurationEndpoint`) と個々のノードエンドポイント (`Endpoint`) を取得します。  

```
https://elasticache.us-west-2.amazonaws.com/
    ?Action=DescribeCacheClusters
    &CacheClusterId=mycluster
    &ShowCacheNodeInfo=true
    &SignatureVersion=4
    &SignatureMethod=HmacSHA256
    &Timestamp=20150202T192317Z
    &Version=2015-02-02
    &X-Amz-Credential=<credential>
```
自動検出クライアントが設定エンドポイントとして CNAME を認識するように、Memcached 設定エンドポイントの CNAME を作成する場合は、CNAME に `.cfg.` を含める必要があります。例えば、php.ini ファイルの `mycluster.cfg.local` パラメータで `session.save_path` を含めます。

### Valkey または Redis OSS レプリケーショングループのエンドポイントを検索する (ElastiCache API）
<a name="Endpoints.Find.API.ReplGroups"></a>

ElastiCache API を使用して、`DescribeReplicationGroups` アクションでレプリケーショングループのエンドポイントとそのクラスターを検出できます。このアクションでは、読み込みエンドポイントに合わせて、レプリケーショングループのプライマリエンドポイント、レプリケーショングループのすべてのクラスター、およびそのエンドポイントのリストが返ります。

以下のオペレーションでは、レプリケーショングループ `myreplgroup` のプライマリエンドポイント (PrimaryEndpoint)、読み込みエンドポイント (ReaderEndpoint)、個々のノードのエンドポイント (ReadEndpoint) を取得します。すべての書き込みオペレーションにプライマリエンドポイントを使用します。

```
https://elasticache.us-west-2.amazonaws.com/
    ?Action=DescribeReplicationGroups
    &ReplicationGroupId=myreplgroup
    &SignatureVersion=4
    &SignatureMethod=HmacSHA256
    &Timestamp=20150202T192317Z
    &Version=2015-02-02
    &X-Amz-Credential=<credential>
```

詳細については、「[DescribeReplicationGroups](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_DescribeReplicationGroups.html)」を参照してください。

# ElastiCache でシャードを使用する
<a name="Shards"></a>

シャード (API/CLI: ノードグループ) は、1～6 個の Valkey と Redis OSS に対応した ElastiCache ノードで構成されるコレクションです。Valkey または Redis OSS (クラスターモードが無効) クラスターが、複数のシャードを持つことはありません。シャードを使用すると、大きなデータベースをデータシャードと呼ばれる、より小さく、高速の、より簡単に管理できる部分に分割できます。これにより、複数の別々のセクションにオペレーションを分散することで、データベースの効率を高めることができます。シャードを使用すると、パフォーマンス、スケーラビリティ、コスト効率の向上など、多くの利点が得られます。

シャードの数が多くレプリカの数が少ないクラスターを作成できます。クラスターあたり最大 90 ノードです。このクラスター設定は、シャード 90 個およびレプリカ 0 個からシャード 15 個およびレプリカ 5 個 (許容されるレプリカの最大数) までです。クラスターのデータは、クラスターのシャード間で分割されます。シャードに複数のノードがある場合、1 つを読み書きのプライマリノード、その他を読み取り専用のレプリカノードとするレプリケーションが実装されます。

エンジンバージョンが Valkey 7.2 以降、または Redis OSS 5.0.6 から 7.1 の場合、ノードまたはシャードの制限は、クラスターごとに最大 500 個まで増やすことができます。例えば、83 個のシャード (シャードごとに 1 つのプライマリと 5 レプリカ) と 500 個のシャード (プライマリのみでレプリカなし) の範囲で、500 個のノードクラスターを設定できます。増加に対応できる十分な IP アドレスがあることを確認してください。一般的な落とし穴として、サブネットグループ内のサブネットの CIDR 範囲が小さすぎる、またはサブネットが他のクラスターで共有され、頻繁に使用されていることが挙げられます。詳細については、「[サブネットグループの作成](SubnetGroups.Creating.md)」を参照してください。

 5.0.6 未満のバージョンの場合、クラスターあたりの制限は 250 個です。

この制限の拡大をリクエストするには、「[AWS のサービスの制限](https://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html)」を参照し、制限タイプとして [**Nodes per cluster per instance type (インスタンスタイプごとのクラスターあたりのノード)**] を選択します。

ElastiCache コンソールを使用して Valkey または Redis OSS (クラスターモード有効) クラスターを作成する際は、クラスター内のシャード数とシャード内のノード数を指定します。詳細については、「[Valkey または Redis OSS (クラスターモードが有効) クラスターの作成 (コンソール)](Clusters.Create.md#Clusters.Create.CON.RedisCluster)」を参照してください。ElastiCache API または AWS CLI を使用してクラスター (API/CLI では*レプリケーショングループ*) を作成する場合は、シャード内のノード (API/CLI: ノードグループ) の数を個別に設定できます。詳細については次を参照してください: 
+ API: [CreateReplicationGroup](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_CreateReplicationGroup.html)
+ CLI: [create-replication-group](https://docs.aws.amazon.com/cli/latest/reference/elasticache/create-replication-group.html)

シャード内の各ノードのコンピューティング、ストレージ、メモリの仕様は同じです。ElastiCache API を使用すると、ノード数、セキュリティ設定、システムメンテナンス時間など、シャード全体の属性を制御できます。

![\[イメージ: Valkey または Redis OSS のシャード設定。\]](http://docs.aws.amazon.com/ja_jp/AmazonElastiCache/latest/dg/images/ElastiCacheClusters-CSN-RedisShards.png)


*Valkey または Redis OSS のシャード設定*

詳細については、「[Valkey または Redis OSS (クラスターモードが有効) のオフラインリシャーディング](scaling-redis-cluster-mode-enabled.md#redis-cluster-resharding-offline)」および「[Valkey または Redis OSS (クラスターモードが有効) のオンラインリシャーディング](scaling-redis-cluster-mode-enabled.md#redis-cluster-resharding-online)」を参照してください。

## シャードの ID を見つける
<a name="shard-find-id"></a>

AWS マネジメントコンソール、AWS CLI または ElastiCache API を使用して、シャードの ID を見つけることができます。

### の使用AWS マネジメントコンソール
<a name="shard-find-id-con"></a>



**Topics**
+ [Valkey または Redis OSS (クラスターモードが無効) の場合](#shard-find-id-con-classic)
+ [Valkey または Redis OSS (クラスターモードが有効) の場合](#shard-find-id-con-cluster)

#### Valkey または Redis OSS (クラスターモードが無効) の場合
<a name="shard-find-id-con-classic"></a>

Valkey または Redis OSS (クラスターモードが無効) レプリケーショングループのシャード ID は、常に `0001` です。

#### Valkey または Redis OSS (クラスターモードが有効) の場合
<a name="shard-find-id-con-cluster"></a>

次の手順では、AWS マネジメントコンソール を使用して、Valkey または Redis OSS (クラスターモードが有効) のレプリケーショングループのシャード ID を見つけます。

**Valkey または Redis OSS (クラスターモードが有効) レプリケーショングループ内のシャード ID を見つけるには**

1. AWS マネジメントコンソール にサインインして、ElastiCache コンソール ([https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/)) を開きます。

1. ナビゲーションペインで、**[Valkey]** または **[Redis OSS]** を選択し、シャード ID を見つけたい Valkey または Redis OSS (クラスターモードが有効) レプリケーショングループの名前を選択します。

1. [**Shard Name (シャード名)**] 列で、シャード ID はシャード名の末尾 4 桁の数字です。

### の使用AWS CLI
<a name="shard-find-id-cli"></a>

Valkey または Redis OSS (クラスターモードが無効) または Valkey または Redis OSS (クラスターモードが有効) レプリケーショングループのシャード (ノードグループ) ID を見つけるには、次のオプションのパラメータを指定した AWS CLI オペレーション `describe-replication-groups` を使用します。
+ **`--replication-group-id`**—指定されたレプリケーショングループの詳細への出力を制限するときに使用するオプションのパラメータ。このパラメータを省略すると、最大 100 個のレプリケーショングループの詳細が返されます。

**Example**  
このコマンドは、`sample-repl-group` の詳細を返します。  
Linux、macOS、Unix の場合:  

```
aws elasticache describe-replication-groups \
    --replication-group-id sample-repl-group
```
Windows の場合:  

```
aws elasticache describe-replication-groups ^
    --replication-group-id sample-repl-group
```
このコマンドによる出力は次のようになります。シャード (ノードグループ) ID は、見つけやすいように*ハイライト表示*されます。  

```
{
    "ReplicationGroups": [
        {
            "Status": "available", 
            "Description": "2 shards, 2 nodes (1 + 1 replica)", 
            "NodeGroups": [
                {
                    "Status": "available", 
                    "Slots": "0-8191", 
                    "NodeGroupId": "0001", 
                    "NodeGroupMembers": [
                        {
                            "PreferredAvailabilityZone": "us-west-2c", 
                            "CacheNodeId": "0001", 
                            "CacheClusterId": "sample-repl-group-0001-001"
                        }, 
                        {
                            "PreferredAvailabilityZone": "us-west-2a", 
                            "CacheNodeId": "0001", 
                            "CacheClusterId": "sample-repl-group-0001-002"
                        }
                    ]
                }, 
                {
                    "Status": "available", 
                    "Slots": "8192-16383", 
                    "NodeGroupId": "0002", 
                    "NodeGroupMembers": [
                        {
                            "PreferredAvailabilityZone": "us-west-2b", 
                            "CacheNodeId": "0001", 
                            "CacheClusterId": "sample-repl-group-0002-001"
                        }, 
                        {
                            "PreferredAvailabilityZone": "us-west-2a", 
                            "CacheNodeId": "0001", 
                            "CacheClusterId": "sample-repl-group-0002-002"
                        }
                    ]
                }
            ], 
            "ConfigurationEndpoint": {
                "Port": 6379, 
                "Address": "sample-repl-group.9dcv5r.clustercfg.usw2.cache.amazonaws.com"
            }, 
            "ClusterEnabled": true, 
            "ReplicationGroupId": "sample-repl-group", 
            "SnapshotRetentionLimit": 1, 
            "AutomaticFailover": "enabled", 
            "SnapshotWindow": "13:00-14:00", 
            "MemberClusters": [
                "sample-repl-group-0001-001", 
                "sample-repl-group-0001-002", 
                "sample-repl-group-0002-001", 
                "sample-repl-group-0002-002"
            ], 
            "CacheNodeType": "cache.m3.medium", 
            "DataTiering": "disabled",
            "PendingModifiedValues": {}
        }
    ]
}
```

### ElastiCache API の使用
<a name="shard-find-id-api"></a>

Valkey または Redis OSS (クラスターモードが無効) または Valkey または Redis OSS (クラスターモードが有効) レプリケーショングループのシャード (ノードグループ) ID を見つけるには、次のオプションのパラメータを指定した AWS CLI オペレーション `describe-replication-groups` を使用します。
+ **`ReplicationGroupId`**—指定されたレプリケーショングループの詳細への出力を制限するときに使用するオプションのパラメータ。このパラメータを省略すると、最大 *xxx* 個のレプリケーショングループの詳細が返されます。

**Example**  
このコマンドは、`sample-repl-group` の詳細を返します。  
Linux、macOS、Unix の場合:  

```
https://elasticache.us-west-2.amazonaws.com/
   ?Action=DescribeReplicationGroup
   &ReplicationGroupId=sample-repl-group
   &Version=2015-02-02
   &SignatureVersion=4
   &SignatureMethod=HmacSHA256
   &Timestamp=20150202T192317Z
   &X-Amz-Credential=<credential>
```