翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
独自の ElastiCache Redis OSS クラスターの設計
以下は、独自の ElastiCache Redis OSS クラスターを設計するために実行する必要がある 1 回限りのアクションです。
ElastiCache のセットアップの詳細については、「ElastiCache のセットアップ」を参照してください。
ステップ 1: サブネットグループの作成
クラスターを作成する前に、まずサブネットグループを作成します。キャッシュサブネットグループは、VPC 内でキャッシュクラスターとして指定できるサブネットの集合です。VPC でキャッシュクラスターを起動する場合は、キャッシュサブネットグループを選択する必要があります。次に、ElastiCache ではそのキャッシュサブネットグループを使用して、サブネット内の IP アドレスをクラスター内の各キャッシュノードに割り当てます。
新しいサブネットグループを作成する場合は、使用可能な IP アドレス数に注意してください。サブネットの空き IP アドレス数が非常に少ない場合は、クラスターに追加できるノード数が制約される可能性があります。この問題を解決するために、クラスターのアベイラビリティーゾーンで十分な数の IP アドレスを使用できるように、サブネットグループに 1 つ以上のサブネットを割り当てることができます。その後で、クラスターにノードを追加できます。
以下の手順では、mysubnetgroup
(コンソール)および AWS CLIというサブネットグループを作成する方法を示します。
次の手順では、サブネットグループ (コンソール) を作成する方法を示します。
サブネットグループ (コンソール) を作成するには
-
AWS マネジメントコンソールにサインインし、ElastiCache コンソールを https://console.aws.amazon.com/elasticache/
://https://https://https://https://https://https://https://https://https://https://https://https://https://https://https -
ナビゲーションリストで [ Subnet Groups] を選択します。
-
Create Subnet Group を選択します。
-
Create Subnet Group ウィザードで、次の操作を行います。すべての設定が正しいことを確認したら、[Yes, Create] を選択します。
-
Name ボックスにサブネットグループの名前を入力します。
-
Description ボックスにサブネットグループの説明を入力します。
-
[VPC ID] ボックスで、作成した Amazon VPC を選択します。
-
[Availability Zone] および [Subnet ID] リストで、プライベートサブネットのアベイラビリティーゾーンまたは [Local Zone] と ID を選択し、[Add] を選択します。
-
-
表示された確認メッセージで、Close を選択します。
ElastiCache コンソールの [サブネットグループ] のリストに新しいサブネットグループが表示されます。ウィンドウの下部で、サブネットグループを選択して、ウィンドウの下部で詳細 (このグループに関連付けられているすべてのサブネットなど) を確認します。
コマンドプロンプトで、create-cache-subnet-group
コマンドを使用してサブネットグループを作成します。
Linux、macOS、Unix の場合:
aws elasticache create-cache-subnet-group \ --cache-subnet-group-name
mysubnetgroup
\ --cache-subnet-group-description"Testing"
\ --subnet-idssubnet-53df9c3a
Windows の場合:
aws elasticache create-cache-subnet-group ^ --cache-subnet-group-name
mysubnetgroup
^ --cache-subnet-group-description"Testing"
^ --subnet-idssubnet-53df9c3a
このコマンドでは、次のような出力が生成されます。
{
"CacheSubnetGroup": {
"VpcId": "vpc-37c3cd17",
"CacheSubnetGroupDescription": "Testing",
"Subnets": [
{
"SubnetIdentifier": "subnet-53df9c3a",
"SubnetAvailabilityZone": {
"Name": "us-west-2a"
}
}
],
"CacheSubnetGroupName": "mysubnetgroup"
}
}
詳細については、 AWS CLI 「」トピックを参照してくださいcreate-cache-subnet-group。
ステップ 2: クラスターを作成する
実稼働用のクラスターを作成する前に、ビジネスニーズに合わせてクラスターをどのように設定するかを検討する必要があります。これらの問題については、ElastiCache でクラスターを準備する セクションで対応します。この「使用開始」の演習では、クラスターモードを無効にしてクラスターを作成し、適用するデフォルトの設定値を受け入れます。
作成するクラスターはライブとなりますが、サンドボックスで実行されるわけではありません。インスタンスを削除するまで、ElastiCache の標準使用料が発生します。ここで説明する演習を一気に完了し、終了時にクラスターを削除すれば、使用料合計はごくわずかです (通常 1 ドル未満です)。ElastiCache の使用料の詳細については、「Amazon ElastiCache
クラスターは、Amazon VPC サービスに基づいて Virtual Private Cloud (VPC) で起動されます
Redis OSS (クラスターモードが無効) クラスターの作成 (コンソール)
ElastiCache コンソールを使用して Redis OSS (クラスターモードが無効) クラスターを作成するには
-
にサインイン AWS Management Console し、Amazon ElastiCache コンソールを https://console.aws.amazon.com/elasticache/
://https://https://https://https://https://https://https://https://https://https://https://https://https:// -
右上隅のリストから、このクラスターを起動する AWS リージョンを選択します。
-
ナビゲーションペインで、[Get started] (開始) を選択します。
[VPC の作成] を選択し、「Virtual Private Cloud (VPC) の作成」のステップに従います。
ElastiCache ダッシュボードページで、[Valkey キャッシュ] または [Redis OSS キャッシュ] を選択します。この演習では、[Redis OSS キャッシュ] を選択してから、[Redis OSS キャッシュを作成] を選択します。
-
[クラスター設定] で、以下を実行します。
[Configure and create a new cluster] (新しいクラスターを設定および作成) を選択します。
[Cluster mode] (クラスターモード) で、[Disabled] (無効) を選択します。
-
[Cluster info] (クラスター情報) で、[Name] (名前) の値を入力します。
-
(オプション) [Description] (説明) の値を入力します。
[Location] (場所):
クラスターのステータスが [available] になり次第、Amazon EC2 にアクセス権を付与して接続し、使用を開始できます。詳細については、「ステップ 3. クラスターへのアクセスを許可する」および「ステップ 4. クラスターのノードに接続する」を参照してください。
重要
クラスターが使用可能になった後、クラスターがアクティブである間は (実際に使用していない場合でも)、時間に応じた料金が発生します。このクラスターに対する課金を中止するには、クラスターを削除する必要があります。「ElastiCache でのクラスターの削除」を参照してください。
例
次の CLI コードでは、レプリカのない Redis OSS (クラスターモードが無効) キャッシュクラスターを作成します。
Linux、macOS、Unix の場合:
aws elasticache create-cache-cluster \ --cache-cluster-id
my-cluster
\ --cache-node-typecache.r4.large
\ --engineredis
\ --num-cache-nodes1
\ --snapshot-arnsarn:aws:s3:::my_bucket/snapshot.rdb
Windows の場合:
aws elasticache create-cache-cluster ^ --cache-cluster-id
my-cluster
^ --cache-node-typecache.r4.large
^ --engineredis
^ --num-cache-nodes1
^ --snapshot-arnsarn:aws:s3:::my_bucket/snapshot.rdb
有効になっているクラスターモードを使用するには、以下のトピックを参照してください。
コンソールを使用するには、「Valkey または Redis OSS (クラスターモードが有効) クラスターの作成 (コンソール)」を参照してください。
を使用するには AWS CLI、「」を参照してくださいValkey または Redis OSS (クラスターモードが有効) クラスターの作成 (AWS CLI)。
ステップ 3: クラスターへのアクセスの許可
このセクションでは、Amazon EC2 インスタンスの起動と接続に慣れていることを前提としています。詳細については、「Amazon EC2 入門ガイド」を参照してください。
すべての ElastiCache クラスターは Amazon EC2 インスタンスからアクセスするように設計されています。最も一般的なシナリオは、同じ Amazon Virtual Private Cloud (Amazon VPC) 内の Amazon EC2 インスタンスから ElastiCache クラスターにアクセスすることであり、それがこの演習でのケースとなります。
デフォルトでは、クラスターへのネットワークアクセスは、クラスターの作成に使用されたアカウントに制限されます。EC2 インスタンスからクラスターに接続するには、EC2 インスタンスにクラスターへのアクセスを許可する必要があります。必要なステップはクラスターを EC2-VPC で起動したか、EC2-Classic で起動したかによって異なります。
最も一般的ユースケースは、EC2 インスタンスにデプロイされたアプリケーションが同じ VPC のクラスターに接続する必要がある場合です。同じ VPC 内の EC2 インスタンスとクラスター間のアクセスを管理する方法として最も簡単なのは、次の方法です。
-
クラスターの VPC セキュリティグループを作成します。このセキュリティグループは、クラスターインスタンスへのアクセスを制限するのに使用できます。例えば、クラスターを作成したときに割り当てたポートと、クラスターにアクセスするのに使用する IP アドレスを使用して TCP へのアクセスを許可する、このセキュリティグループのカスタムルールを作成できます。
Redis OSS クラスターとレプリケーショングループのデフォルトのポートは
6379
です。重要
Amazon ElastiCache セキュリティグループは、Amazon Virtual Private Cloud (VPC) 環境で実行されていないクラスターのみに適用されます。Amazon Virtual Private Cloud で実行している場合、[セキュリティグループ ] はコンソールのナビゲーションペインでは使用できません。
ElastiCache ノードを Amazon VPC で実行している場合は、Amazon VPC セキュリティグループでクラスターへのアクセスを制御します。これは、ElastiCache セキュリティグループとは異なります。Amazon VPC で ElastiCache を使用する方法については、「Amazon VPC と ElastiCache のセキュリティ」を参照してください。
-
EC2 インスタンス (ウェブサーバーとアプリケーションサーバー) 用の VPC セキュリティグループを作成します。このセキュリティグループは、必要に応じて VPC のルーティングテーブルを介してインターネットから EC2 インスタンスへのアクセスを許可できます。例えば、ポート 22 経由で EC2 インスタンスへの TCP アクセスを許可するルールをこのセキュリティグループに設定できます。
-
EC2 インスタンス用に作成したセキュリティグループからの接続を許可するクラスターのセキュリティグループで、カスタムルールを作成します。これは、セキュリティグループのメンバーにクラスターへのアクセスを許可します。
注記
ElastiCache での Local Zones の使用 の使用を予定している場合、これが有効になっていることを確認します。そのローカルゾーンにサブネットグループを作成すると、VPC はそのローカルゾーンに拡張され、VPC はそのサブネットを他のアベイラビリティーゾーンのサブネットとして扱います。関連するすべてのゲートウェイとルートテーブルが自動的に調整されます。
他のセキュリティグループからの接続を許可する VPC セキュリティグループでルールを作成するには
-
AWS マネジメントコンソールにサインインし、「https://https://console.aws.amazon.com/vpc
.com で Amazon VPC コンソールを開きます。 -
ナビゲーションペインで、[Security Groups] を選択してください。
-
クラスターインスタンスに使用するセキュリティグループを選択または作成します。インバウンドルール で、インバウンドルールの編集 を選択し、ルールの追加 を選択します。このセキュリティグループは、他のセキュリティグループのメンバーへのアクセスを許可します。
-
Type で Custom TCP Rule を選択します。
-
Port Range ポートには、クラスター作成時に使用したポートを指定します。
Redis OSS クラスターとレプリケーショングループのデフォルトのポートは
6379
です。 -
ソース ボックスに、セキュリティグループの ID の入力を開始します。リストから、Amazon EC2 インスタンスに使用するセキュリティグループを選択します。
-
-
終了したら、保存 を選択します。
アクセスを有効にしたので、次のセクションで説明するように、ノードに接続する準備が整いました。
別の Amazon VPC、別の AWS リージョン、または企業ネットワークから ElastiCache クラスターにアクセスする方法については、以下を参照してください。
ステップ 4: クラスターのノードに接続する
続行する前に、「ステップ 3: クラスターへのアクセスの許可」を完了します。
このセクションでは、Amazon EC2 インスタンスが作成済みであり、このインスタンスに接続できることを前提としています。これを行う手順については、「Amazon EC2 入門ガイド」を参照してください。
Amazon EC2 インスタンスは、許可されている場合にのみクラスターノードに接続できます。
ノードのエンドポイントを見つける
クラスターが利用可能な状態であり、クラスターへのアクセスを許可されている場合は、Amazon EC2 インスタンスにログインしてクラスターに接続できます。そのためには、最初にエンドポイントを確認する必要があります。
Valkey または Redis OSS (クラスターモードが無効) クラスターのエンドポイントを検索する (コンソール)
Redis OSS (クラスターモードが無効) クラスターに 1 つのみのノードがある場合、ノードのエンドポイントは読み取りと書き込みの両方に使用されます。クラスターに複数のノードがある場合は、プライマリエンドポイント、リーダーエンドポイント、ノードエンドポイントの 3 種類のエンドポイントがあります。
プライマリエンドポイントは、常にクラスターのプライマリノードに解決される DNS 名です。プライマリエンドポイントは、リードレプリカのプライマリロールへの昇格など、クラスターに対する変更の影響を受けません。書き込みアクティビティの場合、アプリケーションをプライマリエンドポイントに接続することをお勧めします。
リーダーエンドポイントは、エンドポイントへの着信接続を ElastiCache for Redis OSS クラスター内のすべてのリードレプリカ間で均等に分割します。アプリケーションがいつ接続を作成するか、アプリケーションが接続をどのように (再) 利用するかなどの追加要因によって、トラフィックの分散が決定されます。レプリカが追加または削除されても、読み込みエンドポイントはリアルタイムでクラスターの変更に対応します。ElastiCache for Redis OSS クラスターの複数のリードレプリカを異なるアベイラ AWS ビリティーゾーン (AZ) に配置して、リーダーエンドポイントの高可用性を確保できます。
注記
リーダーエンドポイントはロードバランサーではありません。これは、ラウンドロビン方式でレプリカノードの 1 つの IP アドレスに解決される DNS レコードです。
読み取りアクティビティの場合、アプリケーションはクラスター内のいずれのノードにも接続できます。プライマリエンドポイントとは異なり、ノードエンドポイントは特定のエンドポイントに解決されます。レプリカの追加または削除など、クラスターに変更を加えた場合は、アプリケーションでノードエンドポイントを更新する必要があります。
Redis OSS (クラスターモードが無効) クラスターのエンドポイントを検索するには
-
にサインイン AWS Management Console し、ElastiCache コンソールを https://console.aws.amazon.com/elasticache/
://https://https://https://https://https://https://https://https://https://https://https://https://http -
ナビゲーションペインで、[Redis OSS キャッシュ] を選択します。
クラスター画面には、既存の Valkey または Redis OSS サーバーレスキャッシュ、Redis OSS (クラスターモードが無効) クラスターと Redis OSS (クラスターモードが有効) クラスターを含むリストが表示されます。Redis OSS (クラスターモードが無効) クラスターの作成 (コンソール) のセクションで作成したものを選択します。
-
クラスターのプライマリエンドポイントやリーダーエンドポイントを検索するには、クラスターの名前 (ラジオボタンではない) を選択します。
Redis OSS (クラスターモードが無効) クラスターのプライマリエンドポイントとリーダーエンドポイント
クラスターに 1 つのみのノードがある場合、プライマリエンドポイントはないため、次のステップに進むことができます。
-
Redis OSS (クラスターモードが無効) クラスターにレプリカノードがある場合は、クラスターの名前を選択してから [ノード] タブを選択して、クラスターのレプリカノードエンドポイントを検索できます。
ノードの画面では、クラスター内のプライマリとレプリカの各ノードがそのエンドポイントと共に表示されます。
Redis OSS (クラスターモードが無効) クラスターのノードエンドポイント
-
エンドポイントをクリップボードにコピーするには:
-
一度に 1 つのみ、コピーするエンドポイントを見つけます。
-
エンドポイントアドレスのすぐ前にあるコピーアイコンを選択します。
エンドポイントがクリップボードにコピーされます。エンドポイントを使用してノードに接続する方法については、「ノードに接続する」を参照してください。
-
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
エンドポイントを見つける方法の詳細については、実行中のエンジンとクラスターの該当するトピックを参照してください。
これで、必要なエンドポイントがわかったので、EC2 インスタンスにログインし、クラスターまたはレプリケーショングループに接続できます。次の例では、valkey-cli ユーティリティを使用して、クラスターに接続します。valkey-cli の最新バージョンでは、暗号化/認証が有効なクラスターを接続するための SSL/TLS もサポートしています。
次の例では、Amazon Linux および Amazon Linux 2 を実行している Amazon EC2 インスタンスを使用しています。他の Linux ディストリビューションでの valkey-cli のインストールとコンパイルの詳細については、ご使用のオペレーティングシステムのドキュメントを参照してください。
注記
このプロセスでは、計画外の使用のみの、valkey-cli ユーティリティを使用した接続のテストをカバーしています。サポートされるクライアントのリストについては、「Valkey ドキュメント
クラスターモードが無効な非暗号化クラスターへの接続
次のコマンドを実行してクラスターに接続し、
[primary-endpoint]
と[ポート番号]
をクラスターのエンドポイントとポート番号に置き換えます。(Valkey および Redis OSS のデフォルトポートは 6379 です。)src/valkey-cli -h
primary-endpoint
-pport number
次のようなコマンドプロンプトが表示されます。
primary-endpoint
:port number
これで Valkey および Redis OSS コマンドを実行できるようになりました。
set x Hello OK get x "Hello"
クラスターモードが有効の非暗号化クラスターへの接続
次のコマンドを実行してクラスターに接続し、
[configuration-endpoint]
と[ポート番号]
をクラスターのエンドポイントとポート番号に置き換えます。(Valkey および Redis OSS のデフォルトポートは 6379 です。)src/valkey-cli -h
configuration-endpoint
-c -pport number
注記
上記のコマンドで、-c オプションを指定すると、-ASK および -MOVED リダイレクト
が続くクラスターモードが有効になります。 次のようなコマンドプロンプトが表示されます。
configuration-endpoint
:port number
これで Valkey および Redis OSS コマンドを実行できるようになりました。リダイレクトは、-c オプションを使用して有効にしたために発生します。リダイレクトが有効でない場合、このコマンドは MOVED エラーを返します。MOVED エラーの詳細については、「cluster specification
」を参照してください。 set x Hi -> Redirected to slot [16287] located at 172.31.28.122:6379 OK set y Hello OK get y "Hello" set z Bye -> Redirected to slot [8157] located at 172.31.9.201:6379 OK get z "Bye" get x -> Redirected to slot [16287] located at 172.31.28.122:6379 "Hi"
暗号化/認証が有効なクラスターへの接続
デフォルトでは、valkey-cli は Valkey および Redis OSS への接続時に暗号化されていない TCP 接続を使用します。オプション BUILD_TLS=yes
により、前の「コマンドラインアクセスをダウンロードしてセットアップする」セクションで示されたように、valkey-cli コンパイル時に SSL/TLS を有効にします。AUTH の有効化はオプションです。ただし、AUTH を有効にするために、転送時の暗号化を有効にする必要があります。ElastiCache の暗号化と認証の詳細については、「ElastiCache の転送時の暗号化 (TLS)」を参照してください。
注記
valkey-cli でオプション --tls
を使用して、クラスターモードが有効および無効の両方の暗号化されたクラスターに接続できます。クラスターに AUTH トークンが設定されている場合は、オプション -a
を使用して AUTH パスワードを指定します。
以下の例では、[cluster-endpoint
] と [ポート番号
] をクラスターのエンドポイントとポート番号に置き換えてください。(Redis OSS のデフォルトポートは 6379 です。)
クラスターモードが無効の暗号化されたクラスターに接続する
次の例では、暗号化および認証が有効のクラスターに接続します。
src/valkey-cli -h
cluster-endpoint
--tls -ayour-password
-pport number
次の例では、暗号化のみが有効なクラスターに接続します。
src/valkey-cli -h
cluster-endpoint
--tls -pport number
クラスターモードが有効の暗号化されたクラスターへの接続
次の例では、暗号化および認証が有効のクラスターに接続します。
src/valkey-cli -c -h
cluster-endpoint
--tls -ayour-password
-pport number
次の例では、暗号化のみが有効なクラスターに接続します。
src/valkey-cli -c -h
cluster-endpoint
--tls -pport number
クラスターに接続した後、暗号化されていないクラスターに対して、前の例に示されているように Valkey または Redis OSS コマンドを実行できます。
valkey-cli または Redis-cli の代替
クラスターがクラスターモード有効ではなく、valkey-cli または redis-cli コンパイルを行わずに、短いテストのためにクラスターに接続する必要がある場合、telnet または openssl を使用できます。以下のコマンド例では、[cluster-endpoint
] と [ポート番号
] をクラスターのエンドポイントとポート番号に置き換えてください。(Redis OSS のデフォルトポートは 6379 です。)
次の例では、暗号化および/または認証が有効のクラスターモードが無効のクラスターに接続します。
openssl s_client -connect
cluster-endpoint
:port number
クラスターにパスワードが設定されている場合は、まずクラスターに接続します。接続後、次のコマンドを使用してクラスターを認証してから、Enter
キーを押します。次の例では、[your-password
] をクラスターのパスワードに置き換えます。
Auth
your-password
次の例では、暗号化または認証が有効ではないクラスターモードが無効のクラスターに接続します。
telnet
cluster-endpoint
port number
Valkey または Redis OSS CLI を使用して、EC2 Windows インスタンスからクラスターに接続するには、valkey-cli パッケージをダウンロードし、valkey-cli.exe を使用して EC2 Windows インスタンスから Valkey または Redis OSS クラスターに接続する必要があります。
次の例では、valkey-cli ユーティリティを使用して、暗号化が有効ではなく、Valkey または Redis OSS を実行しているクラスターに接続します。Valkey と使用可能なコマンドの詳細については、Valkey ウェブサイトの「Valkey commands
valkey-cli を使用して、暗号化が有効になっていない Valkey または Redis OSS クラスターに接続するには
-
選択した接続ユーティリティを使用して、Amazon EC2 インスタンスに接続します。Amazon EC2 インスタンスに接続する方法については、「Amazon EC2 入門ガイド」を参照してください。
リンク https://github.com/microsoftarchive/redis/releases/download/win-3.0.504/Redis-x64-3.0.504.zip
をコピーしてインターネットブラウザに貼り付け、GitHub の利用可能なリリース (https://github.com/microsoftarchive/redis/releases/tag/win-3.0.504 ) から Redis OSS クライアントの zip ファイルをダウンロードします。 zip ファイルを目的のフォルダ/パスに展開します。
コマンドプロンプトを開き、Valkey ディレクトリに移動して、コマンド
c:\Valkey>valkey-cli -h
を実行します。Valkey_Cluster_Endpoint
-p 6379以下に例を示します。
c:\Valkey>valkey-cli -h cmd.xxxxxxx.ng.0001.usw2.cache.amazonaws.com -p 6379
-
Valkey または Redis OSS コマンドを実行します。
これで、クラスターに接続され、以下のような Valkey または Redis OSS コマンドを実行できます。
set a "hello"
// Set key "a" with a string value and no expiration OKget a
// Get value for key "a" "hello"get b
// Get value for key "b" results in miss (nil)set b "Good-bye" EX 5
// Set key "b" with a string value and a 5 second expiration "Good-bye"get b
// Get value for key "b" "Good-bye" // wait >= 5 secondsget b
(nil) // key has expired, nothing returnedquit
// Exit from valkey-cli