翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
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 インスタンスにクラスターへのアクセスを許可することができます。デフォルトでは、クラスターへのアクセスはそのクラスターを起動したアカウントに制限されています。
クラスターまたはレプリケーショングループへのアクセスの許可
EC2-VPC でクラスターを起動した
Amazon Virtual Private Cloud (Amazon VPC) でクラスターを起動した場合、同じ Amazon VPC で実行されている Amazon EC2 インスタンスからのみ ElastiCache クラスターに接続できます。この場合、クラスターに対するネットワーク進入を許可する必要があります。
注記
[Local Zones] を使用している場合、それを有効にしていることを確認します。詳細については、「Local Zones の有効化」を参照してください。これにより、VPC はそのローカルゾーンに拡張され、VPC はそのサブネットを他のアベイラビリティーゾーン、関連するゲートウェイ、ルートテーブル、およびその他のセキュリティグループの考慮事項のサブネットとして扱い、自動的に調整されます。
Amazon VPC セキュリティグループからクラスターへのネットワーク進入を許可するには
AWS Management Console にサインインし、Amazon EC2 コンソール (https://console.aws.amazon.com/ec2/
) を開きます。 -
ナビゲーションペインで、[ネットワーク & セキュリティ] の下にある [セキュリティグループ] を選択します。
-
セキュリティグループのリストから、Amazon VPC のセキュリティグループを選択します。ElastiCache 用のセキュリティグループを作成した場合を除き、このセキュリティグループは、[default] という名前になります。
-
Inbound タブを選択し、次の操作を行います。
-
Edit (編集) を選択します。
-
ルールの追加 を選択します。
-
Type 列で Custom TCP rule を選択します。
-
Port range ボックスに、クラスターノードのポート番号を入力します。この番号は、クラスターの起動時に指定した番号と同じ番号である必要があります。Memcached のデフォルトポートは
11211
です。Valkey および Redis OSS のデフォルトポートは6379
です。 -
[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 のセキュリティグループを作成されることをお勧めします。詳細については、「 カスタムセキュリティグループ」を参照してください。
-
[Save] を選択します。
-
Amazon VPC で Amazon EC2 インスタンスを起動すると、そのインスタンスは ElastiCache クラスターに接続できます。
AWS 外部からの ElastiCache リソースへのアクセス
Amazon ElastiCache は、クラウドベースのメモリ内のキー値ストアを提供する AWS サービスです。このサービスは、AWS 内からのみアクセスできるように設計されています。ElastiCache クラスターが VPC 内でホストされている場合は、ネットワークアドレス変換 (NAT) インスタンスを使用して外部からアクセスできるようにできます。
要件
AWS 外部から ElastiCache リソースにアクセスするには、以下の要件を満たしている必要があります。
-
クラスターが VPC 内にあり、ネットワークアドレス変換(NAT)インスタンスを介してアクセスできる必要があります。これは必須の要件であり、例外はありません。
-
NAT インスタンスがクラスターと同じ VPC 内で起動されている必要があります。
-
NAT インスタンスがクラスターとは別のパブリックサブネットで起動されている必要があります。
-
Elastic IP (EIP) アドレスが NAT インスタンスに関連付けられている必要があります。NAT インスタンスのポートは、iptables のポート転送機能を使用して VPC 内のキャッシュノードポートに転送されます。
考慮事項
ElastiCache 外部から ElastiCache リソースにアクセスする際には、以下の点を考慮してください。
-
クライアントは EIP に接続し、NAT インスタンスのポートをキャッシュします。NAT インスタンスでポート転送すると、トラフィックは適切なキャッシュクラスターノードに転送されます。
-
クラスターノードが追加または交換されたら、この変更が反映されるように iptables ルールが更新される必要があります。
制約事項
このアプローチは、テストおよび開発の目的にしか使用できません。以下の制限があるため、本稼働で使用することは推奨されません。
-
NAT インスタンスは、クライアントと複数のクラスターの間のプロキシとして機能します。プロキシを追加すると、キャッシュクラスターのパフォーマンスに影響が及びます。この影響は、NAT インスタンスを介してアクセスするキャッシュクラスターの数に応じて増大します。
-
クライアントから NAT インスタンスへのトラフィックは暗号化されません。したがって、NAT インスタンスを介して機密データを送信することは回避してください。
-
NAT インスタンスは、別のインスタンスを維持するためのオーバーヘッドを増加させます。
-
NAT インスタンスは単一障害点として機能します。VPC で高可用性 NAT をセットアップする方法については、「Amazon VPC NAT インスタンスの高可用性: 例
」を参照してください。
AWS 外部からの ElastiCache リソースにアクセスする方法
次の手順は、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
-
セキュリティグループ – *10\.0\.0\.55*
-
-
以下を使って、Valkey または Redis OSS クラスターにアクセスします。
-
IP アドレス – 10.0.1.230
-
デフォルトポート – 6379
-
セキュリティグループ – sg-bd56b7da
-
AWS インスタンス IP アドレス — sg-bd56b7da
-
-
信頼済みクライアントの IP アドレスが 198.51.100.27 である。
-
NAT インスタンスの Elastic IP アドレスが 203.0.113.73 である。
-
NAT インスタンスのセキュリティグループが sg-ce56b7a9 である。
NAT インスタンスを使用して ElastiCache リソースに接続するには
-
キャッシュクラスターと同じ VPC 内のパブリックサブネット内に NAT インスタンスを作成します。
デフォルトでは、VPC ウィザードが cache.m1.small ノードタイプを起動します。必要に応じてノードサイズを選択する必要があります。AWS 外部から ElastiCache にアクセスできるようにするには、EC2 NAT AMI を使用する必要があります。
NAT インスタンスの作成については、「AWS VPC ユーザーガイド」の「NAT インスタンス」を参照してください。
-
キャッシュクラスターと NAT インスタンスのセキュリティグループルールを作成します。
NAT インスタンスのセキュリティグループとクラスターインスタンスには以下のルールが必要です。
-
2 つのインバウンドルール
-
Memcached の場合、最初のルールは、信頼済みクライアントから、NAT インスタンスから転送された各キャッシュポート (11211〜11213) への TCP 接続を許可することです。
-
Valkey および Redis OSS の場合、最初のルールは、信頼済みクライアントから、NAT インスタンスから転送された各キャッシュポート (6379〜6381) への TCP 接続を許可することです。
-
信頼済みクライアントへの SSH アクセスを許可する 2 番目のルール。
NAT インスタンスのセキュリティグループ - インバウンドルール (Memcached) タイプ プロトコル ポート範囲 ソース カスタム TCP ルール TCP 11211-11213 198.51.100.27/32 SSH TCP 22 198.51.100.27/32 NAT インスタンスセキュリティグループ - インバウンドルール (Valkey または Redis OSS) タイプ プロトコル ポート範囲 ソース カスタム TCP ルール TCP 6379-6380 198.51.100.27/32 SSH TCP 22 203.0.113.73/32 -
-
Memcached の場合、キャッシュポート (11211) への TCP 接続を許可するアウトバウンドルール。
NAT インスタンスのセキュリティグループ - アウトバウンドルール タイプ プロトコル ポート範囲 デスティネーション カスタム TCP ルール TCP 11211 sg-ce56b7a9 (クラスターインスタンスのセキュリティグループ) -
Valkey または Redis OSS の場合、キャッシュポート (6379) への TCP 接続を許可するアウトバウンドルール。
NAT インスタンスのセキュリティグループ - アウトバウンドルール タイプ プロトコル ポート範囲 デスティネーション カスタム TCP ルール TCP 6379 sg-ce56b7a9 (クラスターインスタンスのセキュリティグループ) -
Memcached の場合、NAT インスタンスからキャッシュポート (11211) への TCP 接続を許可するクラスターのセキュリティグループのインバウンドルール。
クラスターインスタンスのセキュリティグループ - インバウンドルール タイプ プロトコル ポート範囲 ソース カスタム TCP ルール TCP 11211 sg-bd56b7da (NAT セキュリティグループ) -
Valkey または Redis OSS の場合、NAT インスタンスからキャッシュポート (6379) への TCP 接続を許可するクラスターのセキュリティグループのインバウンドルール。
クラスターインスタンスのセキュリティグループ - インバウンドルール タイプ プロトコル ポート範囲 ソース カスタム TCP ルール TCP 6379 sg-bd56b7da (クラスターセキュリティグループ)
-
-
ルールを検証します。
-
信頼済みクライアントが NAT インスタンスに SSH 接続できることを確認します。
-
信頼済みクライアントが NAT インスタンスからクラスターに接続できることを確認します。
-
-
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
-
iptables 設定を保存します。
ルールをテストし、検証してから保存します。Red Hat ベースの Linux ディストリビューション (Amazon Linux など) を使用している場合は、次のコマンドを実行します。
service iptables save
関連トピック
以下のトピックも役に立つ場合があります。