翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
クラスターまたはレプリケーショングループへのアクセス
Amazon ElastiCache インスタンスは、Amazon EC2 インスタンスを介してアクセスするように設計されています。
Amazon Virtual Private Cloud (Amazon VPC) で ElastiCache インスタンスを起動した場合、同じ Amazon VPC 内の Amazon EC2 インスタンスからインスタンスにアクセスできます ElastiCache。または、VPC ピアリングを使用して、別の Amazon VPC の Amazon EC2 から ElastiCache インスタンスにアクセスできます。
EC2 Classic で ElastiCache インスタンスを起動した場合、インスタンスに関連付けられた Amazon EC2 セキュリティグループにキャッシュセキュリティグループへのアクセスを許可することで、EC2 インスタンスがクラスターにアクセスできるようにします。 Amazon EC2 デフォルトでは、クラスターへのアクセスはそのクラスターを起動したアカウントに制限されています。
クラスターまたはレプリケーショングループへのアクセスの許可
EC2-VPC でクラスターを起動した
クラスターを Amazon Virtual Private Cloud (Amazon VPC) で起動した場合、クラスターに接続 ElastiCacheできるのは、同じ Amazon VPC で実行されている Amazon EC2 インスタンスからのみです。この場合、クラスターに対するネットワーク進入を許可する必要があります。
注記
[Local Zones] を使用している場合、それを有効にしていることを確認します。詳細については、「Local Zones の有効化」を参照してください。これにより、VPC はそのローカルゾーンに拡張され、VPC はそのサブネットを他のアベイラビリティーゾーン、関連するゲートウェイ、ルートテーブル、およびその他のセキュリティグループの考慮事項のサブネットとして扱い、自動的に調整されます。
Amazon VPC セキュリティグループからクラスターへのネットワーク進入を許可するには
にサインイン AWS Management Console し、https://console.aws.amazon.com/ec2/
で Amazon EC2 コンソールを開きます。 -
ナビゲーションペインで、[ネットワーク & セキュリティ] の下にある [セキュリティグループ] を選択します。
-
セキュリティグループのリストから、Amazon VPC のセキュリティグループを選択します。 ElastiCache 使用するセキュリティグループを作成しない限り、このセキュリティグループにはデフォルトの という名前が付けられます。
-
Inbound タブを選択し、次の操作を行います。
-
Edit (編集) を選択します。
-
ルールの追加 を選択します。
-
Type 列で Custom TCP rule を選択します。
-
Port range ボックスに、クラスターノードのポート番号を入力します。この番号は、クラスターの起動時に指定した番号と同じ番号である必要があります。 です。Redis OSS のデフォルトポートは
6379
です。 -
ソースボックスで、ポート範囲 (0.0.0.0/0) を持つ Anywhere を選択して、Amazon VPC 内で起動する Amazon EC2 インスタンスを ElastiCache ノードに接続できるようにします。
重要
ElastiCache クラスターを 0.0.0.0/0 に開くと、クラスターにはパブリック IP アドレスがないため、VPC の外部からアクセスできないため、クラスターはインターネットに公開されません。ただし、お客様のアカウントの他の Amazon EC2 インスタンスにデフォルトのセキュリティグループが適用され、そのインスタンスにパブリック IP アドレスが付与される場合があります。それがデフォルトポートで何かを実行している場合、そのサービスが意図せず公開されることがあります。したがって、 でのみ使用される VPC セキュリティグループを作成することをお勧めします ElastiCache。詳細については、「 カスタムセキュリティグループ」を参照してください。
-
Save (保存) を選択します。
-
Amazon VPC で Amazon EC2 インスタンスを起動すると、そのインスタンスは ElastiCache クラスターに接続できるようになります。
外部から ElastiCache リソースにアクセスする AWS
Amazon ElastiCache は、クラウドベースのインメモリキーバリューストアを提供する AWS サービスです。このサービスは、 内からのみアクセスするように設計されています AWS。ただし、 ElastiCache クラスターが VPC 内でホストされている場合は、ネットワークアドレス変換 (NAT) インスタンスを使用して外部アクセスを提供できます。
要件
外部から ElastiCache リソースにアクセスするには、次の要件を満たす必要があります AWS。
-
クラスターが 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 インスタンスの高可用性: 例
」を参照してください。
外部から ElastiCache リソースにアクセスする方法 AWS
次の手順は、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
-
以下を使って、Redis クラスターにアクセスします。
-
IP アドレス – 10.0.1.230
-
デフォルトの Redis ポート – 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 ノードタイプを起動します。必要に応じてノードサイズを選択する必要があります。外部 ElastiCache から にアクセスするには、EC2 NAT AMI を使用する必要があります AWS。
NAT インスタンスの作成の詳細については、 AWS 「VPC ユーザーガイド」の「NAT インスタンス」を参照してください。
-
キャッシュクラスターと NAT インスタンスのセキュリティグループルールを作成します。
NAT インスタンスのセキュリティグループとクラスターインスタンスには以下のルールが必要です。
-
2 つのインバウンドルール
-
信頼済みクライアントから、NAT インスタンスから転送された各キャッシュポート (6379 - 6381) への TCP 接続を許可するルール。
-
信頼済みクライアントへの SSH アクセスを許可するルール。
NAT インスタンスのセキュリティグループ - インバウンドルールタイプ プロトコル ポート範囲 ソース カスタム TCP ルール TCP 6379-6380 198.51.100.27/32 SSH TCP 22 203.0.113.73/32 -
-
キャッシュポート(6379)への TCP 接続を許可するアウトバウンドルール。
NAT インスタンスのセキュリティグループ - アウトバウンドルールタイプ プロトコル ポート範囲 デスティネーション カスタム TCP ルール TCP 6379 sg-ce56b7a9 (クラスターインスタンスのセキュリティグループ) -
NAT インスタンスからキャッシュポート(6379)への TCP 接続を許可するクラスターのセキュリティグループのインバウンドルール。
クラスターインスタンスのセキュリティグループ - インバウンドルールタイプ プロトコル ポート範囲 ソース カスタム TCP ルール TCP 6379 sg-bd56b7da (クラスターセキュリティグループ)
-
-
ルールを検証します。
-
信頼済みクライアントが NAT インスタンスに SSH 接続できることを確認します。
-
信頼済みクライアントが NAT インスタンスからクラスターに接続できることを確認します。
-
-
NAT インスタンスに iptables ルールを追加します。
NAT インスタンスからのキャッシュポートをクラスターノードに転送するには、iptables ルールをクラスターのノードごとに NAT テーブルに追加する必要があります。以下に例を示します。
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 6379 -j DNAT --to 10.0.1.230:6379
ポート番号は、クラスターのノードごとに一意である必要があります。たとえば、ポート 11211~11213 を使用する 3 つのノードで構成される Redis クラスターを使用している場合、ルールは次のようになります。
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
関連トピック
以下のトピックも役に立つ場合があります。